Skip to content
  • oliver@apple.com's avatar
    2010-07-08 Oliver Hunt <oliver@apple.com> · 63f9f139
    oliver@apple.com authored
            Reviewed by Gavin Barraclough.
    
            Make object-literal parsing conformant with the spec.
            https://bugs.webkit.org/show_bug.cgi?id=41892
    
            Bring our parsing of object literals into conformance with the ES5 spec.
            Basically disallow conflicting accessor vs. normal property definitions
            The bulk of this patch is just fiddling to maintain performance.
    
            * parser/ASTBuilder.h:
            (JSC::ASTBuilder::createGetterOrSetterProperty):
            (JSC::ASTBuilder::createProperty):
            (JSC::ASTBuilder::getName):
            (JSC::ASTBuilder::getType):
            * parser/JSParser.cpp:
            (JSC::jsParse):
            (JSC::JSParser::JSParser):
            (JSC::JSParser::parseProperty):
            (JSC::JSParser::parseObjectLiteral):
            (JSC::JSParser::parseStrictObjectLiteral):
            * parser/JSParser.h:
            * parser/Lexer.cpp:
            (JSC::Lexer::clear):
            * parser/Lexer.h:
            (JSC::Lexer::currentOffset):
            (JSC::Lexer::setOffset):
              Add logic to allow us to roll the lexer back in the input stream.
            * parser/Nodes.h:
            (JSC::PropertyNode::):
            (JSC::PropertyNode::type):
            * parser/Parser.cpp:
            (JSC::Parser::parse):
            * parser/SourceProvider.h:
            (JSC::SourceProvider::SourceProvider):
            (JSC::SourceProvider::isValid):
            (JSC::SourceProvider::setValid):
              SourceProvider now records whether the input text
              has already been validated.
            * parser/SyntaxChecker.h:
            (JSC::SyntaxChecker::SyntaxChecker):
            (JSC::SyntaxChecker::Property::Property):
            (JSC::SyntaxChecker::Property::operator!):
            (JSC::SyntaxChecker::createProperty):
            (JSC::SyntaxChecker::createPropertyList):
            (JSC::SyntaxChecker::createGetterOrSetterProperty):
              The SyntaxChecker mode now needs to maintain a bit more information
              to ensure that we can validate object literals correctly.
    2010-07-08  Oliver Hunt  <oliver@apple.com>
    
            Reviewed by Gavin Barraclough.
    
            Need a short description and bug URL (OOPS!)
    
            * fast/js/object-literal-syntax-expected.txt: Added.
            * fast/js/object-literal-syntax.html: Added.
            * fast/js/parser-syntax-check-expected.txt:
            * fast/js/script-tests/object-literal-syntax.js: Added.
            * fast/js/script-tests/parser-syntax-check.js:
            * ietestcenter/Javascript/11.1.5_4-4-b-1-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-b-2-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-c-1-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-c-2-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-d-1-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-d-2-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-d-3-expected.txt:
            * ietestcenter/Javascript/11.1.5_4-4-d-4-expected.txt:
            * platform/chromium/test_expectations.txt:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@62848 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    63f9f139