Reviewed by Maciej.
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2007 04:05:56 +0000 (04:05 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2007 04:05:56 +0000 (04:05 +0000)
commitb6ca385db4fd0928a5df502015e94ed5e7a7e8cf
treed5490418754ec565f80fed6ec7713f06e890d70a
parent8b98477ab26d460f39bdcc84055b9764bf28bf93
    Reviewed by Maciej.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16370
          REGRESSION (r28540): source URL and line number no longer set for outer function/programs

        Test: fast/js/exception-linenums-in-html-1.html
        Test: fast/js/exception-linenums-in-html-2.html
        Test: fast/js/exception-linenums.html

        By the time the ProgramNode was constructed, the source URL was empty.

        * kjs/Parser.cpp:
        (KJS::Parser::parseProgram): Added code to set and clear m_sourceURL, which is now
        handled here instead of in the lexer; it needs to still be set when we create the
        program node. Call setLoc to set the first and last line number.
        (KJS::Parser::parseFunctionBody): Ditto, but for the body.
        (KJS::Parser::parse): Removed the sourceURL argument.

        * kjs/Parser.h: Added sourceURL(), m_sourceURL, and m_lastLine. Added a lastLine
        parameter to didFinishParsing, since the bison grammar knows the last line number
        and we otherwise do not know it. Removed the sourceURL parameter from parse, since
        that's now handled at a higher level.

        * kjs/grammar.y: Pass the last line number to didFinishParsing.

        * kjs/lexer.cpp:
        (KJS::Lexer::setCode): Removed the sourceURL argument and the code to set m_sourceURL.
        (KJS::Lexer::clear): Ditto.
        * kjs/lexer.h: More of the same.

        * kjs/nodes.cpp:
        (KJS::FunctionBodyNode::FunctionBodyNode): Get the source URL from the parser rather
        than from the lexer. Removed unneeded call to setLoc, since the line numbers already
        both default to -1.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28577 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/kjs/Parser.cpp
JavaScriptCore/kjs/Parser.h
JavaScriptCore/kjs/grammar.y
JavaScriptCore/kjs/lexer.cpp
JavaScriptCore/kjs/lexer.h
JavaScriptCore/kjs/nodes.cpp