Skip to content
  • oliver@apple.com's avatar
    Getters and setters cause line numbers in errors/console.log to be offset for the whole file · c800ee0e
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=77675
    
    Reviewed by Timothy Hatcher.
    
    Source/JavaScriptCore:
    
    Our default literal parsing logic doesn't handle the extra work required for
    getters and setters.  When it encounters one, it rolls back the lexer and
    then switches to a more complete parsing function.  Unfortunately it was only
    winding back the character position, and was ignoring the line number and
    other lexer data.  This led to every getter and setter causing the line number
    to be incorrectly incremented leading to increasingly incorrect numbers for
    the rest of the file.
    
    * parser/Parser.cpp:
    (JSC::::parseObjectLiteral):
    
    LayoutTests:
    
    Add getter and setter line number tests.
    
    * fast/js/exception-linenums-expected.txt:
    * fast/js/script-tests/exception-linenums.js:
    (firstPropIsGetter.get getter):
    (secondPropIsGetter.prop.1.get getter):
    (firstPropIsSetter.set setter):
    (secondPropIsSetter.prop.1.set setter):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    c800ee0e