Changeset 34273 in webkit for trunk/JavaScriptCore/API/minidom.c


Ignore:
Timestamp:
May 30, 2008, 11:05:28 PM (17 years ago)
Author:
[email protected]
Message:

Made the starting line number of scripts be 1-based throughout the engine.

JavaScriptCore:

2008-05-30 Timothy Hatcher <[email protected]>

Made the starting line number of scripts be 1-based throughout the engine.
This cleans up script line numbers so they are all consistent now and fixes
some cases where script execution was shown as off by one line in the debugger.

No change in SunSpider.

Reviewed by Oliver Hunt.

  • API/minidom.c: (main): Pass a line number of 1 instead of 0 to parser().parse().
  • API/testapi.c: (main): Ditto. And removes a FIXME and changed an assertEqualsAsNumber to use 1 instead of 2 for the line number.
  • VM/Machine.cpp: (KJS::callEval): Pass a line number of 1 instead of 0. (KJS::Machine::debug): Use firstLine for WillExecuteProgram instead of lastLine. Use lastLine for DidExecuteProgram instead of firstLine.
  • kjs/DebuggerCallFrame.cpp: (KJS::DebuggerCallFrame::evaluate): Pass a line number of 1 instead of 0 to parser().parse().
  • kjs/Parser.cpp: (KJS::Parser::parse): ASSERT startingLineNumber is greatter than 0. Change the startingLineNumber to be 1 if it was less than or equal to 0. This is needed for release builds to maintain compatibility with the JavaScriptCore API.
  • kjs/function.cpp: (KJS::globalFuncEval): Pass a line number of 1 instead of 0 to parser().parse().
  • kjs/function_object.cpp: (FunctionObjectImp::construct): Pass a line number of 1 instead of 0 to construct().
  • kjs/lexer.cpp: (Lexer::setCode): Made yylineno = startingLineNumber instead of adding 1.
  • kjs/testkjs.cpp: (functionRun): Pass a line number of 1 instead of 0 to Interpreter::evaluate(). (functionLoad): Ditto. (prettyPrintScript): Ditto. (runWithScripts): Ditto.
  • profiler/Profiler.cpp: (WebCore::createCallIdentifier): Removed a plus 1 of startingLineNumber.

WebCore:

2008-05-30 Timothy Hatcher <[email protected]>

Made the starting line number of scripts be 1-based throughout the engine.
This cleans up script line numbers so they are all consistent now and fixes
some cases where script execution was shown as off by one line in the debugger.

Doing this also exposed a bug where JSLazyEventListener created in XHML or SVG
documents would always have a line number of 0. So this change fixed that bug
to pass all the SVG and XHTML tests.

All layout tests pass.

Reviewed by Oliver Hunt.

  • bindings/js/kjs_events.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener): Set the line number to 1 if it was passed in as 0. This can happen when listeners are created with a setAttribute call from JavaScript. (WebCore::JSLazyEventListener::parseCode): Add a FIXME about the URL being incorrect when listeners are created with a setAttribute call from JavaScript.
  • bindings/js/kjs_events.h: Remove the default value for lineNumber, since no callers need it.
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject evaluateWebScript:]): Pass a line number of 1 instead of 0 to Interpreter::evaluate().
  • bridge/NP_jsobject.cpp: (_NPN_Evaluate): Ditto.
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::eval): Ditto.
  • dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::startElementNs): Call KJSProxy::setEventHandlerLineno() around the call to handleElementAttributes, so any JSLazyEventListener created from those attributes have line numbers. (WebCore::XMLTokenizer::endElementNs): Remove a minus 1 of the line number. (WebCore::XMLTokenizer::notifyFinished): Pass a line number of 1 instead of 0. (WebCore::XMLTokenizer::parseEndElement): Remove a minus 1 of the line number.
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::evaluateScript): Add a FIXME about the starting line number being incorrect in some cases when this function is called.
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseSpecial): Add a plus 1 to the line number when setting scriptStartLineno so it is 1-based. Same for calling setEventHandlerLineno(). (WebCore::HTMLTokenizer::processToken): Ditto.
  • html/HTMLTokenizer.h: Change the default line number on scriptExecution() to 1 from 0.
  • loader/FrameLoader.cpp: (FrameLoader::executeIfJavaScriptURL): Pass a line number of 1 instead of 0 to executeScript().

WebKitTools:

2008-05-30 Timothy Hatcher <[email protected]>

Made the starting line number of scripts be 1-based throughout the engine.
This cleans up script line numbers so they are all consistent now.

Reviewed by Oliver Hunt.

  • DumpRenderTree/mac/ObjCController.m: (runJavaScriptThread): Pass a line number of 1 instead of 0 to JSEvaluateScript.
  • DumpRenderTree/pthreads/JavaScriptThreadingPthreads.cpp: (runJavaScriptThread): Ditto.
  • DumpRenderTree/win/DumpRenderTree.cpp: (runJavaScriptThread): Ditto.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/minidom.c

    r30795 r34273  
    5959    JSStringRef script = JSStringCreateWithUTF8CString(scriptUTF8);
    6060    JSValueRef exception;
    61     JSValueRef result = JSEvaluateScript(context, script, NULL, NULL, 0, &exception);
     61    JSValueRef result = JSEvaluateScript(context, script, NULL, NULL, 1, &exception);
    6262    if (result)
    6363        printf("PASS: Test script executed successfully.\n");
Note: See TracChangeset for help on using the changeset viewer.