Changeset 158014 in webkit


Ignore:
Timestamp:
Oct 25, 2013 10:13:16 AM (10 years ago)
Author:
oliver@apple.com
Message:

Improve JSC Parser error messages
https://bugs.webkit.org/show_bug.cgi?id=123341

Reviewed by Andreas Kling.

Source/JavaScriptCore:

This patch moves away from the current cludgy mechanisms used to produce
error messages and moves to something closer to case by case errors.

This results in a large change size as previously we may just have
'failIfFalse(foo)', but now the logic becomes either
'failIfFalseWithMessage(foo, "Cannot do blah with ", foo->thing())'
Or alternatively

if (!foo)

check for 'interesting' errors, before falling back to generic error

This means that this patch is large, but produces no semantic changes, and
only hits slow (e.g. error) paths.

  • parser/Parser.cpp:

(JSC::::Parser):
(JSC::::parseSourceElements):
(JSC::::parseVarDeclaration):
(JSC::::parseConstDeclaration):
(JSC::::parseDoWhileStatement):
(JSC::::parseWhileStatement):
(JSC::::parseVarDeclarationList):
(JSC::::createBindingPattern):
(JSC::::parseDeconstructionPattern):
(JSC::::parseConstDeclarationList):
(JSC::::parseForStatement):
(JSC::::parseBreakStatement):
(JSC::::parseContinueStatement):
(JSC::::parseReturnStatement):
(JSC::::parseThrowStatement):
(JSC::::parseWithStatement):
(JSC::::parseSwitchStatement):
(JSC::::parseSwitchClauses):
(JSC::::parseSwitchDefaultClause):
(JSC::::parseTryStatement):
(JSC::::parseDebuggerStatement):
(JSC::::parseBlockStatement):
(JSC::::parseStatement):
(JSC::::parseFormalParameters):
(JSC::::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::::parseFunctionInfo):
(JSC::::parseFunctionDeclaration):
(JSC::::parseExpressionOrLabelStatement):
(JSC::::parseExpressionStatement):
(JSC::::parseIfStatement):
(JSC::::parseExpression):
(JSC::::parseAssignmentExpression):
(JSC::::parseConditionalExpression):
(JSC::::parseBinaryExpression):
(JSC::::parseProperty):
(JSC::::parseObjectLiteral):
(JSC::::parseStrictObjectLiteral):
(JSC::::parseArrayLiteral):
(JSC::::parsePrimaryExpression):
(JSC::::parseArguments):
(JSC::::parseMemberExpression):
(JSC::operatorString):
(JSC::::parseUnaryExpression):
(JSC::::printUnexpectedTokenText):

  • parser/Parser.h:

(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasDeclaredParameter):
(JSC::Parser::hasDeclaredVariable):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::setErrorMessage):

LayoutTests:

Update a vast array of layout test results

  • fast/events/window-onerror5-expected.txt:
  • js/basic-strict-mode-expected.txt:
  • js/break-ASI-expected.txt:
  • js/dom/assign-expected.txt:
  • js/dom/object-extra-comma-expected.txt:
  • js/dom/parse-error-external-script-in-eval-expected.txt:
  • js/dom/parse-error-external-script-in-new-Function-expected.txt:
  • js/dom/reserved-words-as-property-expected.txt:
  • js/function-constructor-error-expected.txt:
  • js/function-declaration-expected.txt:
  • js/function-toString-object-literals-expected.txt:
  • js/function-toString-parentheses-expected.txt:
  • js/js-continue-break-restrictions-expected.txt:
  • js/kde/garbage-n-expected.txt:
  • js/kde/parse-expected.txt:
  • js/no-semi-insertion-at-end-of-script-expected.txt:
  • js/object-literal-syntax-expected.txt:
  • js/parser-xml-close-comment-expected.txt:
  • js/regexp-compile-crash-expected.txt:
  • js/script-tests/function-constructor-error.js:
  • js/script-tests/reserved-words-strict.js:

(isReserved):

  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.3_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.4_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.10-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.12-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.13-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.14-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.16-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.17-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.20-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.22-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.24-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.25-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.5-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.9-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.10-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.11-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.16-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.27-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.5-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.7-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.9-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.2_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.2_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T7-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T9-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T5-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T8-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T9-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T5-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T7-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.4_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T6-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T7-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T8-expected.txt:
  • sputnik/Conformance/08_Types/8.2_The_Null_Type/S8.2_A2-expected.txt:
  • sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A13_T3-expected.txt:
  • sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A14_T3-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T1-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T2-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T3-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T4-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T1-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T2-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T3-expected.txt:
  • sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A2_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T10-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T11-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T12-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T13-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T14-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T15-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T7-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T8-expected.txt:
  • sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T9-expected.txt:
  • sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T7-expected.txt:
  • sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T8-expected.txt:
  • sputnik/Conformance/12_Statement/12.4_Expression_Statement/S12.4_A1-expected.txt:
  • sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A11-expected.txt:
  • sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A9_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A12-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A15-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A13_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A15-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11.1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12.1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4.1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A13_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A15-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A6-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A6-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T10-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T3-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T4-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T5-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T6-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T7-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T8-expected.txt:
  • sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T9-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.2/15.1.2.1_eval/S15.1.2.1_A2_T2-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1-expected.txt:
Location:
trunk
Files:
207 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r157997 r158014  
     12013-10-25  Oliver Hunt  <oliver@apple.com>
     2
     3        Improve JSC Parser error messages
     4        https://bugs.webkit.org/show_bug.cgi?id=123341
     5
     6        Reviewed by Andreas Kling.
     7
     8        Update a vast array of layout test results
     9
     10        * fast/events/window-onerror5-expected.txt:
     11        * js/basic-strict-mode-expected.txt:
     12        * js/break-ASI-expected.txt:
     13        * js/dom/assign-expected.txt:
     14        * js/dom/object-extra-comma-expected.txt:
     15        * js/dom/parse-error-external-script-in-eval-expected.txt:
     16        * js/dom/parse-error-external-script-in-new-Function-expected.txt:
     17        * js/dom/reserved-words-as-property-expected.txt:
     18        * js/function-constructor-error-expected.txt:
     19        * js/function-declaration-expected.txt:
     20        * js/function-toString-object-literals-expected.txt:
     21        * js/function-toString-parentheses-expected.txt:
     22        * js/js-continue-break-restrictions-expected.txt:
     23        * js/kde/garbage-n-expected.txt:
     24        * js/kde/parse-expected.txt:
     25        * js/no-semi-insertion-at-end-of-script-expected.txt:
     26        * js/object-literal-syntax-expected.txt:
     27        * js/parser-xml-close-comment-expected.txt:
     28        * js/regexp-compile-crash-expected.txt:
     29        * js/script-tests/function-constructor-error.js:
     30        * js/script-tests/reserved-words-strict.js:
     31        (isReserved):
     32        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T2-expected.txt:
     33        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T3-expected.txt:
     34        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T2-expected.txt:
     35        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T3-expected.txt:
     36        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.3_T2-expected.txt:
     37        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.4_T2-expected.txt:
     38        * sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T1-expected.txt:
     39        * sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T4-expected.txt:
     40        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.1-expected.txt:
     41        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.10-expected.txt:
     42        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.12-expected.txt:
     43        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.13-expected.txt:
     44        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.14-expected.txt:
     45        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.16-expected.txt:
     46        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.17-expected.txt:
     47        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.2-expected.txt:
     48        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.20-expected.txt:
     49        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.22-expected.txt:
     50        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.24-expected.txt:
     51        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.25-expected.txt:
     52        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.3-expected.txt:
     53        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.4-expected.txt:
     54        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.5-expected.txt:
     55        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.8-expected.txt:
     56        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.9-expected.txt:
     57        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.10-expected.txt:
     58        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.11-expected.txt:
     59        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.16-expected.txt:
     60        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.27-expected.txt:
     61        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.5-expected.txt:
     62        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.6-expected.txt:
     63        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.7-expected.txt:
     64        * sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.9-expected.txt:
     65        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.2_T2-expected.txt:
     66        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T1-expected.txt:
     67        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T3-expected.txt:
     68        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T1-expected.txt:
     69        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T3-expected.txt:
     70        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.2_T1-expected.txt:
     71        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T1-expected.txt:
     72        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T3-expected.txt:
     73        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T1-expected.txt:
     74        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T3-expected.txt:
     75        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T7-expected.txt:
     76        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T8-expected.txt:
     77        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T9-expected.txt:
     78        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T1-expected.txt:
     79        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T3-expected.txt:
     80        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T6-expected.txt:
     81        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T4-expected.txt:
     82        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T8-expected.txt:
     83        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T4-expected.txt:
     84        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T8-expected.txt:
     85        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A4-expected.txt:
     86        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T5-expected.txt:
     87        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T6-expected.txt:
     88        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T8-expected.txt:
     89        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T9-expected.txt:
     90        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T4-expected.txt:
     91        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T5-expected.txt:
     92        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T6-expected.txt:
     93        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T7-expected.txt:
     94        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.4_T1-expected.txt:
     95        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T6-expected.txt:
     96        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T7-expected.txt:
     97        * sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T8-expected.txt:
     98        * sputnik/Conformance/08_Types/8.2_The_Null_Type/S8.2_A2-expected.txt:
     99        * sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A13_T3-expected.txt:
     100        * sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A14_T3-expected.txt:
     101        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T1-expected.txt:
     102        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T2-expected.txt:
     103        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T3-expected.txt:
     104        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T4-expected.txt:
     105        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T1-expected.txt:
     106        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T2-expected.txt:
     107        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T3-expected.txt:
     108        * sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T4-expected.txt:
     109        * sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A2_T1-expected.txt:
     110        * sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T2-expected.txt:
     111        * sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T3-expected.txt:
     112        * sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T5-expected.txt:
     113        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T1-expected.txt:
     114        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T10-expected.txt:
     115        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T11-expected.txt:
     116        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T12-expected.txt:
     117        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T13-expected.txt:
     118        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T14-expected.txt:
     119        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T15-expected.txt:
     120        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T2-expected.txt:
     121        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T3-expected.txt:
     122        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T4-expected.txt:
     123        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T5-expected.txt:
     124        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T6-expected.txt:
     125        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T7-expected.txt:
     126        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T8-expected.txt:
     127        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T9-expected.txt:
     128        * sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T1-expected.txt:
     129        * sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T2-expected.txt:
     130        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T1-expected.txt:
     131        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T2-expected.txt:
     132        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T3-expected.txt:
     133        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T4-expected.txt:
     134        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T5-expected.txt:
     135        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T6-expected.txt:
     136        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T7-expected.txt:
     137        * sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T8-expected.txt:
     138        * sputnik/Conformance/12_Statement/12.4_Expression_Statement/S12.4_A1-expected.txt:
     139        * sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A11-expected.txt:
     140        * sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T1-expected.txt:
     141        * sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T2-expected.txt:
     142        * sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A9_T3-expected.txt:
     143        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A12-expected.txt:
     144        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T3-expected.txt:
     145        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A15-expected.txt:
     146        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T1-expected.txt:
     147        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T2-expected.txt:
     148        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T3-expected.txt:
     149        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T4-expected.txt:
     150        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T5-expected.txt:
     151        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T6-expected.txt:
     152        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A13_T3-expected.txt:
     153        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A15-expected.txt:
     154        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T1-expected.txt:
     155        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T2-expected.txt:
     156        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T3-expected.txt:
     157        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T4-expected.txt:
     158        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T5-expected.txt:
     159        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T6-expected.txt:
     160        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11.1_T3-expected.txt:
     161        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11_T3-expected.txt:
     162        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12.1_T3-expected.txt:
     163        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12_T3-expected.txt:
     164        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4.1-expected.txt:
     165        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T1-expected.txt:
     166        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T2-expected.txt:
     167        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T1-expected.txt:
     168        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T2-expected.txt:
     169        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T1-expected.txt:
     170        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T2-expected.txt:
     171        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T1-expected.txt:
     172        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T2-expected.txt:
     173        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T3-expected.txt:
     174        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T1-expected.txt:
     175        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T2-expected.txt:
     176        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T3-expected.txt:
     177        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A13_T3-expected.txt:
     178        * sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A15-expected.txt:
     179        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T1-expected.txt:
     180        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T2-expected.txt:
     181        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T3-expected.txt:
     182        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T4-expected.txt:
     183        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T1-expected.txt:
     184        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T2-expected.txt:
     185        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T3-expected.txt:
     186        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A6-expected.txt:
     187        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T1-expected.txt:
     188        * sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T2-expected.txt:
     189        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T1-expected.txt:
     190        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T2-expected.txt:
     191        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T3-expected.txt:
     192        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T4-expected.txt:
     193        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T1-expected.txt:
     194        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T2-expected.txt:
     195        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T3-expected.txt:
     196        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A6-expected.txt:
     197        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T1-expected.txt:
     198        * sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T2-expected.txt:
     199        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T1-expected.txt:
     200        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T10-expected.txt:
     201        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T2-expected.txt:
     202        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T3-expected.txt:
     203        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T4-expected.txt:
     204        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T5-expected.txt:
     205        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T6-expected.txt:
     206        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T7-expected.txt:
     207        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T8-expected.txt:
     208        * sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T9-expected.txt:
     209        * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.2/15.1.2.1_eval/S15.1.2.1_A2_T2-expected.txt:
     210        * sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1-expected.txt:
     211
    12122013-10-25  Manuel Rego Casasnovas  <rego@igalia.com>
    2213
  • trunk/LayoutTests/fast/events/window-onerror5-expected.txt

    r153669 r158014  
    11Test that window.onerror is invoked for syntax error in eval. You should see a log record if window.onerror is working properly for this test.Bug 8519.
    22
    3 Error caught successfully: SyntaxError: Unexpected EOF File: window-onerror5.html Line: 16 Column: 9
     3Error caught successfully: SyntaxError: Unexpected end of script File: window-onerror5.html Line: 16 Column: 9
    44
  • trunk/LayoutTests/fast/regex/dom/non-pattern-characters-expected.txt

    r156066 r158014  
    3434
    3535Testing regexp: [invalid \ variations]
    36 PASS /\/ threw exception SyntaxError: Unexpected token '/'.
    37 PASS /a\/ threw exception SyntaxError: Unexpected token '/'.
     36PASS /\/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
     37PASS /a\/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
    3838
    3939Testing regexp: /./
     
    8181
    8282Testing regexp: [invalid [ variations]
    83 PASS /[/ threw exception SyntaxError: Unexpected token '/'.
    84 PASS /a[/ threw exception SyntaxError: Unexpected token '/'.
     83PASS /[/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
     84PASS /a[/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
    8585PASS /[b-a]/ threw exception SyntaxError: Invalid regular expression: range out of order in character class.
    8686PASS /a[b-a]/ threw exception SyntaxError: Invalid regular expression: range out of order in character class.
  • trunk/LayoutTests/http/tests/workers/shared-worker-importScripts-expected.txt

    r89257 r158014  
    2828PASS: some resources were loaded despite the network error
    2929Loaded resource 1
    30 PASS: Threw SyntaxError: Expected an identifier but found 'syntax' instead when encountering a syntax error in imported script
     30PASS: Threw SyntaxError: Unexpected identifier 'syntax' when encountering a syntax error in imported script
    3131PASS: some resources were loaded despite the presence of a syntax error
    3232Testing multiple arguments, with first resource throwing an exception:
  • trunk/LayoutTests/http/tests/workers/worker-importScripts-expected.txt

    r89257 r158014  
    2828PASS: some resources were loaded despite the network error
    2929Loaded resource 1
    30 PASS: Threw SyntaxError: Expected an identifier but found 'syntax' instead when encountering a syntax error in imported script
     30PASS: Threw SyntaxError: Unexpected identifier 'syntax' when encountering a syntax error in imported script
    3131PASS: some resources were loaded despite the presence of a syntax error
    3232Testing multiple arguments, with first resource throwing an exception:
  • trunk/LayoutTests/js/basic-strict-mode-expected.txt

    r153221 r158014  
    2525PASS testThisBracketAccess.call(1, 'length') is undefined.
    2626PASS Function('"use strict"; return this;')() is undefined.
    27 PASS Function('"use strict"; with({});') threw exception SyntaxError: 'with' statements are not valid in strict mode.
     27PASS Function('"use strict"; with({});') threw exception SyntaxError: 'with' statements are not valid in strict mode..
    2828PASS testGlobalAccess() is undefined
    2929PASS testThis.call() is undefined
     
    3131PASS testThis.call(undefined) is undefined
    3232PASS testThis.apply(undefined) is undefined
    33 PASS (function eval(){'use strict';}) threw exception SyntaxError: Unexpected token '}'.
    34 PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError: Unexpected token '}'.
    35 PASS (function (eval){'use strict';}) threw exception SyntaxError: Unexpected token '}'.
    36 PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError: Unexpected token '}'.
    37 PASS (function arguments(){'use strict';}) threw exception SyntaxError: Unexpected token '}'.
    38 PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxError: Unexpected token '}'.
    39 PASS (function (arguments){'use strict';}) threw exception SyntaxError: Unexpected token '}'.
    40 PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxError: Unexpected token '}'.
    41 PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
    42 PASS (function(){(function (){'use strict'; var eval;})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
    43 PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
    44 PASS (function(){(function (){'use strict'; var arguments;})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
    45 PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode.
    46 PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode.
    47 PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode.
    48 PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode.
    49 PASS (function (a, a){'use strict';}) threw exception SyntaxError: Unexpected token '}'.
    50 PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError: Unexpected token '}'.
    51 PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    52 PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    53 PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    54 PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    55 PASS (function (){var a; function f() {'use strict'; delete a;} })() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    56 PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    57 PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode.
    58 PASS (function(){(function (){'use strict'; with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode.
     33PASS (function eval(){'use strict';}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
     34PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
     35PASS (function (eval){'use strict';}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
     36PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode..
     37PASS (function arguments(){'use strict';}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
     38PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
     39PASS (function (arguments){'use strict';}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
     40PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode..
     41PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Cannot declare a variable named eval in strict mode..
     42PASS (function(){(function (){'use strict'; var eval;})}) threw exception SyntaxError: Cannot declare a variable named eval in strict mode..
     43PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Cannot declare a variable named arguments in strict mode..
     44PASS (function(){(function (){'use strict'; var arguments;})}) threw exception SyntaxError: Cannot declare a variable named arguments in strict mode..
     45PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError: Cannot declare a catch variable named 'eval' in strict mode..
     46PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw exception SyntaxError: Cannot declare a catch variable named 'eval' in strict mode..
     47PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception SyntaxError: Cannot declare a catch variable named 'arguments' in strict mode..
     48PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw exception SyntaxError: Cannot declare a catch variable named 'arguments' in strict mode..
     49PASS (function (a, a){'use strict';}) threw exception SyntaxError: Invalid parameters or function name in strict mode..
     50PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError: Invalid parameters or function name in strict mode..
     51PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     52PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     53PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     54PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     55PASS (function (){var a; function f() {'use strict'; delete a;} })() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     56PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     57PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode..
     58PASS (function(){(function (){'use strict'; with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode..
    5959PASS (function (){'use strict'; arguments.callee; })() threw exception TypeError: Type error.
    6060PASS (function (){'use strict'; arguments.caller; })() threw exception TypeError: Type error.
     
    7373PASS "arguments" in function(){"use strict"} is true
    7474PASS (function(){"use strict";}).hasOwnProperty("arguments") is true
    75 PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode.
    76 PASS (function(){'use strict'; (function (){with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode.
    77 PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    78 PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    79 PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    80 PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    81 PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    82 PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode.
    83 PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: 'with' statements are not valid in strict mode.
    84 PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception SyntaxError: 'with' statements are not valid in strict mode.
    85 PASS 'use strict'; return threw exception SyntaxError: Return statements are only valid inside functions.
    86 PASS 'use strict'; break threw exception SyntaxError: 'break' is only valid inside a switch or loop statement.
    87 PASS (function(){'use strict'; break}) threw exception SyntaxError: 'break' is only valid inside a switch or loop statement.
    88 PASS 'use strict'; continue threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    89 PASS (function(){'use strict'; continue}) threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    90 PASS 'use strict'; for(;;)return threw exception SyntaxError: Return statements are only valid inside functions.
    91 PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Label 'missingLabel' is not defined.
    92 PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception SyntaxError: Label 'missingLabel' is not defined.
    93 PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Label 'missingLabel' is not defined.
    94 PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception SyntaxError: Label 'missingLabel' is not defined.
     75PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode..
     76PASS (function(){'use strict'; (function (){with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode..
     77PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     78PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     79PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     80PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     81PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     82PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode..
     83PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: 'with' statements are not valid in strict mode..
     84PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception SyntaxError: 'with' statements are not valid in strict mode..
     85PASS 'use strict'; return threw exception SyntaxError: Return statements are only valid inside functions..
     86PASS 'use strict'; break threw exception SyntaxError: 'break' is only valid inside a switch or loop statement..
     87PASS (function(){'use strict'; break}) threw exception SyntaxError: 'break' is only valid inside a switch or loop statement..
     88PASS 'use strict'; continue threw exception SyntaxError: 'continue' is only valid inside a loop statement..
     89PASS (function(){'use strict'; continue}) threw exception SyntaxError: 'continue' is only valid inside a loop statement..
     90PASS 'use strict'; for(;;)return threw exception SyntaxError: Return statements are only valid inside functions..
     91PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Cannot use the undeclared label 'missingLabel'..
     92PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception SyntaxError: Cannot use the undeclared label 'missingLabel'..
     93PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Cannot use the undeclared label 'missingLabel'..
     94PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception SyntaxError: Cannot use the undeclared label 'missingLabel'..
    9595PASS 'use strict'; 007; threw exception SyntaxError: Octal escapes are forbidden in strict mode.
    9696PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal escapes are forbidden in strict mode.
     
    9999PASS '\007'; 'use strict'; threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'.
    100100PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'.
    101 PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode.
    102 PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode.
    103 PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode.
    104 PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode.
    105 PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode.
    106 PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode.
     101PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode..
     102PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode..
     103PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode..
     104PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode..
     105PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode..
     106PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode..
    107107PASS 'use strict'; if (0) { someGlobal = 'Shouldn\'t be able to assign this.'; }; true; is true
    108108PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.';  threw exception ReferenceError: Can't find variable: someGlobal.
     
    112112PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeError: Unable to delete property..
    113113PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exception TypeError: Unable to delete property..
    114 PASS 'use strict'; ++eval threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    115 PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    116 PASS 'use strict'; eval++ threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    117 PASS (function(){'use strict'; eval++}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    118 PASS 'use strict'; --eval threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    119 PASS (function(){'use strict'; --eval}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    120 PASS 'use strict'; eval-- threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    121 PASS (function(){'use strict'; eval--}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    122 PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    123 PASS (function(){'use strict'; function f() { ++arguments }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    124 PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    125 PASS (function(){'use strict'; function f() { arguments++ }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    126 PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    127 PASS (function(){'use strict'; function f() { --arguments }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    128 PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    129 PASS (function(){'use strict'; function f() { arguments-- }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    130 PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
     114PASS 'use strict'; ++eval threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     115PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     116PASS 'use strict'; eval++ threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     117PASS (function(){'use strict'; eval++}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     118PASS 'use strict'; --eval threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     119PASS (function(){'use strict'; --eval}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     120PASS 'use strict'; eval-- threw exception SyntaxError: 'eval' cannot be modified in strict mode..
     121PASS (function(){'use strict'; eval--}) threw exception SyntaxError: 'eval' cannot be modified in strict mode..
     122PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     123PASS (function(){'use strict'; function f() { ++arguments }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     124PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     125PASS (function(){'use strict'; function f() { arguments++ }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     126PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     127PASS (function(){'use strict'; function f() { --arguments }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     128PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: 'arguments' cannot be modified in strict mode..
     129PASS (function(){'use strict'; function f() { arguments-- }}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode..
     130PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
    131131PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Prefix ++ operator applied to value that is not a reference..
    132 PASS (function(){'use strict'; ++(1, eval)}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
     132PASS (function(){'use strict'; ++(1, eval)}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
    133133PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Postfix ++ operator applied to value that is not a reference..
    134 PASS (function(){'use strict'; (1, eval)++}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
     134PASS (function(){'use strict'; (1, eval)++}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
    135135PASS 'use strict'; --(1, eval) threw exception ReferenceError: Prefix -- operator applied to value that is not a reference..
    136 PASS (function(){'use strict'; --(1, eval)}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
     136PASS (function(){'use strict'; --(1, eval)}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
    137137PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Postfix -- operator applied to value that is not a reference..
    138 PASS (function(){'use strict'; (1, eval)--}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode.
    139 PASS 'use strict'; function f() { ++(1, arguments) } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    140 PASS (function(){'use strict'; function f() { ++(1, arguments) }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    141 PASS 'use strict'; function f() { (1, arguments)++ } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    142 PASS (function(){'use strict'; function f() { (1, arguments)++ }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    143 PASS 'use strict'; function f() { --(1, arguments) } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    144 PASS (function(){'use strict'; function f() { --(1, arguments) }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    145 PASS 'use strict'; function f() { (1, arguments)-- } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    146 PASS (function(){'use strict'; function f() { (1, arguments)-- }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode.
    147 PASS 'use strict'; if (0) delete +a.b threw exception SyntaxError: Unexpected token '+'.
    148 PASS (function(){'use strict'; if (0) delete +a.b}) threw exception SyntaxError: Unexpected token '+'.
    149 PASS 'use strict'; if (0) delete ++a.b threw exception SyntaxError: Unexpected token '++'.
    150 PASS (function(){'use strict'; if (0) delete ++a.b}) threw exception SyntaxError: Unexpected token '++'.
    151 PASS 'use strict'; if (0) delete void a.b threw exception SyntaxError: Unexpected token 'void'.
    152 PASS (function(){'use strict'; if (0) delete void a.b}) threw exception SyntaxError: Unexpected token 'void'.
     138PASS (function(){'use strict'; (1, eval)--}) threw exception SyntaxError: 'eval' cannot be modified in strict mode..
     139PASS 'use strict'; function f() { ++(1, arguments) } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     140PASS (function(){'use strict'; function f() { ++(1, arguments) }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     141PASS 'use strict'; function f() { (1, arguments)++ } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     142PASS (function(){'use strict'; function f() { (1, arguments)++ }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     143PASS 'use strict'; function f() { --(1, arguments) } threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     144PASS (function(){'use strict'; function f() { --(1, arguments) }}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     145PASS 'use strict'; function f() { (1, arguments)-- } threw exception SyntaxError: 'arguments' cannot be modified in strict mode..
     146PASS (function(){'use strict'; function f() { (1, arguments)-- }}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode..
     147PASS 'use strict'; if (0) delete +a.b threw exception SyntaxError: The delete operator requires a reference expression..
     148PASS (function(){'use strict'; if (0) delete +a.b}) threw exception SyntaxError: The delete operator requires a reference expression..
     149PASS 'use strict'; if (0) delete ++a.b threw exception SyntaxError: The delete operator requires a reference expression..
     150PASS (function(){'use strict'; if (0) delete ++a.b}) threw exception SyntaxError: The delete operator requires a reference expression..
     151PASS 'use strict'; if (0) delete void a.b threw exception SyntaxError: The delete operator requires a reference expression..
     152PASS (function(){'use strict'; if (0) delete void a.b}) threw exception SyntaxError: The delete operator requires a reference expression..
    153153PASS (function (a){'use strict'; a = false; return a !== arguments[0]; })(true) is true
    154154PASS (function (a){'use strict'; arguments[0] = false; return a !== arguments[0]; })(true) is true
     
    190190PASS 'use strict';5.f threw exception SyntaxError: At least one digit must occur after a decimal point.
    191191PASS (function(){'use strict';5.f}) threw exception SyntaxError: At least one digit must occur after a decimal point.
    192 PASS 'use strict';1-(eval=1); threw exception SyntaxError: 'eval' cannot be modified in strict mode.
    193 PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: 'eval' cannot be modified in strict mode.
    194 PASS 'use strict';arguments=1; threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
    195 PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
    196 PASS 'use strict';1-(arguments=1); threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
    197 PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
    198 PASS 'use strict';var a=(eval=1); threw exception SyntaxError: 'eval' cannot be modified in strict mode.
    199 PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: 'eval' cannot be modified in strict mode.
    200 PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
    201 PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode.
     192PASS 'use strict';1-(eval=1); threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     193PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     194PASS 'use strict';arguments=1; threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     195PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     196PASS 'use strict';1-(arguments=1); threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     197PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     198PASS 'use strict';var a=(eval=1); threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     199PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: Cannot modify 'eval' in strict mode..
     200PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
     201PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError: Cannot modify 'arguments' in strict mode..
    202202PASS 'use strict'; try { throw 1; } catch (e) { aGlobal = true; } is true
    203203PASS 'use strict'; (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal; is true
  • trunk/LayoutTests/js/break-ASI-expected.txt

    r89257 r158014  
    1212PASS do { if(0) throw 'x';else true; } while (0) is true
    1313PASS if (0) throw
    14 'Shouldn't have parsed this.'; threw exception SyntaxError: Unexpected string 'Shouldn'.
     14'Shouldn't have parsed this.'; threw exception SyntaxError: Cannot have a newline after 'throw'..
    1515PASS successfullyParsed is true
    1616
  • trunk/LayoutTests/js/dom/assign-expected.txt

    r156066 r158014  
    1616PASS (y, x) = "FAIL"; threw exception ReferenceError: Left side of assignment is not a reference..
    1717PASS (true ? x : y) = "FAIL"; threw exception ReferenceError: Left side of assignment is not a reference..
    18 PASS x++ = "FAIL"; threw exception SyntaxError: Unexpected token '='.
     18PASS x++ = "FAIL"; threw exception SyntaxError: Left hand sign of operator '=' must be a reference..
    1919PASS successfullyParsed is true
    2020
  • trunk/LayoutTests/js/dom/object-extra-comma-expected.txt

    r156066 r158014  
    77PASS var foo = { 'bar' : 'YES', }; foo.bar is 'YES'
    88PASS var foo = { 'bar' : 'YES' , }; foo.bar is 'YES'
    9 PASS var foo = { , 'bar' : 'YES' }; foo.bar threw exception SyntaxError: Unexpected token ','.
    10 PASS var foo = { 'bar' : 'YES',, }; foo.bar threw exception SyntaxError: Unexpected token ','.
     9PASS var foo = { , 'bar' : 'YES' }; foo.bar threw exception SyntaxError: Unexpected token ','. Expected a property name..
     10PASS var foo = { 'bar' : 'YES',, }; foo.bar threw exception SyntaxError: Unexpected token ','. Expected a property name..
    1111PASS successfullyParsed is true
    1212
  • trunk/LayoutTests/js/dom/parse-error-external-script-in-eval-expected.txt

    r156066 r158014  
    1 CONSOLE MESSAGE: line 2: SyntaxError: Expected an identifier but found 'error' instead
     1CONSOLE MESSAGE: line 2: SyntaxError: Unexpected identifier 'error'
    22This tests that a line number and error message is printed for a parse error in a separate source file using eval().
  • trunk/LayoutTests/js/dom/parse-error-external-script-in-new-Function-expected.txt

    r156066 r158014  
    1 CONSOLE MESSAGE: line 3: SyntaxError: Expected an identifier but found 'error' instead
     1CONSOLE MESSAGE: line 3: SyntaxError: Unexpected identifier 'error'
    22This tests that a line number and error message is printed for a parse error in a separate source file using new Function().
  • trunk/LayoutTests/js/dom/reserved-words-as-property-expected.txt

    r156066 r158014  
    44
    55
    6 PASS var true; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    7 PASS (function(){var true; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    8 PASS var true = 42; true === 42 threw exception SyntaxError: Expected an identifier but found 'true' instead.
    9 PASS (function(){var true = 42; true === 42}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    10 PASS function g(true){  }; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    11 PASS (function(){function g(true){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    12 PASS /true/.test(function g(true){  }) threw exception SyntaxError: Expected an identifier but found 'true' instead.
    13 PASS (function(){/true/.test(function g(true){  })}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    14 PASS try{}catch(true){}; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    15 PASS (function(){try{}catch(true){}; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    16 PASS function true(){  }; true threw exception SyntaxError: Unexpected token 'true'.
    17 PASS (function(){function true(){  }; true}); true threw exception SyntaxError: Unexpected token 'true'.
     6PASS var true; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     7PASS (function(){var true; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     8PASS var true = 42; true === 42 threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     9PASS (function(){var true = 42; true === 42}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     10PASS function g(true){  }; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     11PASS (function(){function g(true){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     12PASS /true/.test(function g(true){  }) threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     13PASS (function(){/true/.test(function g(true){  })}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     14PASS try{}catch(true){}; true threw exception SyntaxError: Cannot use the keyword 'true' as a catch variable name..
     15PASS (function(){try{}catch(true){}; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a catch variable name..
     16PASS function true(){  }; true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
     17PASS (function(){function true(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
    1818PASS ({ "true": 42 }.true === 42) is true
    1919PASS (function(){({ "true": 42 }.true === 42)}); true is true
     
    2222PASS ({ get true(){}, set true(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    2323PASS (function(){({ get true(){}, set true(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    24 PASS "use strict";var true; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    25 PASS (function(){"use strict";var true; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    26 PASS "use strict";var true = 42; true === 42 threw exception SyntaxError: Expected an identifier but found 'true' instead.
    27 PASS (function(){"use strict";var true = 42; true === 42}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    28 PASS "use strict";function g(true){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    29 PASS (function(){"use strict";function g(true){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    30 PASS "use strict";/true/.test(function g(true){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'true' instead.
    31 PASS (function(){"use strict";/true/.test(function g(true){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    32 PASS "use strict";try{}catch(true){}; true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    33 PASS (function(){"use strict";try{}catch(true){}; true}); true threw exception SyntaxError: Expected an identifier but found 'true' instead.
    34 PASS "use strict";function true(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'true'.
    35 PASS (function(){"use strict";function true(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'true'.
     24PASS "use strict";var true; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     25PASS (function(){"use strict";var true; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     26PASS "use strict";var true = 42; true === 42 threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     27PASS (function(){"use strict";var true = 42; true === 42}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     28PASS "use strict";function g(true){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     29PASS (function(){"use strict";function g(true){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     30PASS "use strict";/true/.test(function g(true){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     31PASS (function(){"use strict";/true/.test(function g(true){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
     32PASS "use strict";try{}catch(true){}; true threw exception SyntaxError: Cannot use the keyword 'true' as a catch variable name..
     33PASS (function(){"use strict";try{}catch(true){}; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a catch variable name..
     34PASS "use strict";function true(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
     35PASS (function(){"use strict";function true(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
    3636PASS "use strict";({ "true": 42 }.true === 42) is true
    3737PASS (function(){"use strict";({ "true": 42 }.true === 42)}); true is true
     
    4040PASS "use strict";({ get true(){}, set true(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    4141PASS (function(){"use strict";({ get true(){}, set true(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    42 PASS var false; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    43 PASS (function(){var false; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    44 PASS var false = 42; false === 42 threw exception SyntaxError: Expected an identifier but found 'false' instead.
    45 PASS (function(){var false = 42; false === 42}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    46 PASS function g(false){  }; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    47 PASS (function(){function g(false){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    48 PASS /false/.test(function g(false){  }) threw exception SyntaxError: Expected an identifier but found 'false' instead.
    49 PASS (function(){/false/.test(function g(false){  })}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    50 PASS try{}catch(false){}; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    51 PASS (function(){try{}catch(false){}; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    52 PASS function false(){  }; true threw exception SyntaxError: Unexpected token 'false'.
    53 PASS (function(){function false(){  }; true}); true threw exception SyntaxError: Unexpected token 'false'.
     42PASS var false; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     43PASS (function(){var false; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     44PASS var false = 42; false === 42 threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     45PASS (function(){var false = 42; false === 42}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     46PASS function g(false){  }; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     47PASS (function(){function g(false){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     48PASS /false/.test(function g(false){  }) threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     49PASS (function(){/false/.test(function g(false){  })}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     50PASS try{}catch(false){}; true threw exception SyntaxError: Cannot use the keyword 'false' as a catch variable name..
     51PASS (function(){try{}catch(false){}; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a catch variable name..
     52PASS function false(){  }; true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
     53PASS (function(){function false(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
    5454PASS ({ "false": 42 }.false === 42) is true
    5555PASS (function(){({ "false": 42 }.false === 42)}); true is true
     
    5858PASS ({ get false(){}, set false(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    5959PASS (function(){({ get false(){}, set false(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    60 PASS "use strict";var false; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    61 PASS (function(){"use strict";var false; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    62 PASS "use strict";var false = 42; false === 42 threw exception SyntaxError: Expected an identifier but found 'false' instead.
    63 PASS (function(){"use strict";var false = 42; false === 42}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    64 PASS "use strict";function g(false){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    65 PASS (function(){"use strict";function g(false){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    66 PASS "use strict";/false/.test(function g(false){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'false' instead.
    67 PASS (function(){"use strict";/false/.test(function g(false){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    68 PASS "use strict";try{}catch(false){}; true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    69 PASS (function(){"use strict";try{}catch(false){}; true}); true threw exception SyntaxError: Expected an identifier but found 'false' instead.
    70 PASS "use strict";function false(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'false'.
    71 PASS (function(){"use strict";function false(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'false'.
     60PASS "use strict";var false; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     61PASS (function(){"use strict";var false; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     62PASS "use strict";var false = 42; false === 42 threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     63PASS (function(){"use strict";var false = 42; false === 42}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     64PASS "use strict";function g(false){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     65PASS (function(){"use strict";function g(false){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     66PASS "use strict";/false/.test(function g(false){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     67PASS (function(){"use strict";/false/.test(function g(false){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
     68PASS "use strict";try{}catch(false){}; true threw exception SyntaxError: Cannot use the keyword 'false' as a catch variable name..
     69PASS (function(){"use strict";try{}catch(false){}; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a catch variable name..
     70PASS "use strict";function false(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
     71PASS (function(){"use strict";function false(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
    7272PASS "use strict";({ "false": 42 }.false === 42) is true
    7373PASS (function(){"use strict";({ "false": 42 }.false === 42)}); true is true
     
    7676PASS "use strict";({ get false(){}, set false(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    7777PASS (function(){"use strict";({ get false(){}, set false(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    78 PASS var null; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    79 PASS (function(){var null; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    80 PASS var null = 42; null === 42 threw exception SyntaxError: Expected an identifier but found 'null' instead.
    81 PASS (function(){var null = 42; null === 42}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    82 PASS function g(null){  }; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    83 PASS (function(){function g(null){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    84 PASS /null/.test(function g(null){  }) threw exception SyntaxError: Expected an identifier but found 'null' instead.
    85 PASS (function(){/null/.test(function g(null){  })}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    86 PASS try{}catch(null){}; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    87 PASS (function(){try{}catch(null){}; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    88 PASS function null(){  }; true threw exception SyntaxError: Unexpected token 'null'.
    89 PASS (function(){function null(){  }; true}); true threw exception SyntaxError: Unexpected token 'null'.
     78PASS var null; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     79PASS (function(){var null; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     80PASS var null = 42; null === 42 threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     81PASS (function(){var null = 42; null === 42}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     82PASS function g(null){  }; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     83PASS (function(){function g(null){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     84PASS /null/.test(function g(null){  }) threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     85PASS (function(){/null/.test(function g(null){  })}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     86PASS try{}catch(null){}; true threw exception SyntaxError: Cannot use the keyword 'null' as a catch variable name..
     87PASS (function(){try{}catch(null){}; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a catch variable name..
     88PASS function null(){  }; true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
     89PASS (function(){function null(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
    9090PASS ({ "null": 42 }.null === 42) is true
    9191PASS (function(){({ "null": 42 }.null === 42)}); true is true
     
    9494PASS ({ get null(){}, set null(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    9595PASS (function(){({ get null(){}, set null(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    96 PASS "use strict";var null; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    97 PASS (function(){"use strict";var null; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    98 PASS "use strict";var null = 42; null === 42 threw exception SyntaxError: Expected an identifier but found 'null' instead.
    99 PASS (function(){"use strict";var null = 42; null === 42}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    100 PASS "use strict";function g(null){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    101 PASS (function(){"use strict";function g(null){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    102 PASS "use strict";/null/.test(function g(null){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'null' instead.
    103 PASS (function(){"use strict";/null/.test(function g(null){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    104 PASS "use strict";try{}catch(null){}; true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    105 PASS (function(){"use strict";try{}catch(null){}; true}); true threw exception SyntaxError: Expected an identifier but found 'null' instead.
    106 PASS "use strict";function null(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'null'.
    107 PASS (function(){"use strict";function null(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'null'.
     96PASS "use strict";var null; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     97PASS (function(){"use strict";var null; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     98PASS "use strict";var null = 42; null === 42 threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     99PASS (function(){"use strict";var null = 42; null === 42}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     100PASS "use strict";function g(null){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     101PASS (function(){"use strict";function g(null){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     102PASS "use strict";/null/.test(function g(null){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     103PASS (function(){"use strict";/null/.test(function g(null){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
     104PASS "use strict";try{}catch(null){}; true threw exception SyntaxError: Cannot use the keyword 'null' as a catch variable name..
     105PASS (function(){"use strict";try{}catch(null){}; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a catch variable name..
     106PASS "use strict";function null(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
     107PASS (function(){"use strict";function null(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
    108108PASS "use strict";({ "null": 42 }.null === 42) is true
    109109PASS (function(){"use strict";({ "null": 42 }.null === 42)}); true is true
     
    112112PASS "use strict";({ get null(){}, set null(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    113113PASS (function(){"use strict";({ get null(){}, set null(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    114 PASS var break; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    115 PASS (function(){var break; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    116 PASS var break = 42; break === 42 threw exception SyntaxError: Expected an identifier but found 'break' instead.
    117 PASS (function(){var break = 42; break === 42}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    118 PASS function g(break){  }; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    119 PASS (function(){function g(break){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    120 PASS /break/.test(function g(break){  }) threw exception SyntaxError: Expected an identifier but found 'break' instead.
    121 PASS (function(){/break/.test(function g(break){  })}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    122 PASS try{}catch(break){}; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    123 PASS (function(){try{}catch(break){}; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    124 PASS function break(){  }; true threw exception SyntaxError: Unexpected token 'break'.
    125 PASS (function(){function break(){  }; true}); true threw exception SyntaxError: Unexpected token 'break'.
     114PASS var break; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     115PASS (function(){var break; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     116PASS var break = 42; break === 42 threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     117PASS (function(){var break = 42; break === 42}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     118PASS function g(break){  }; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     119PASS (function(){function g(break){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     120PASS /break/.test(function g(break){  }) threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     121PASS (function(){/break/.test(function g(break){  })}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     122PASS try{}catch(break){}; true threw exception SyntaxError: Cannot use the keyword 'break' as a catch variable name..
     123PASS (function(){try{}catch(break){}; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a catch variable name..
     124PASS function break(){  }; true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
     125PASS (function(){function break(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
    126126PASS ({ "break": 42 }.break === 42) is true
    127127PASS (function(){({ "break": 42 }.break === 42)}); true is true
     
    130130PASS ({ get break(){}, set break(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    131131PASS (function(){({ get break(){}, set break(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    132 PASS "use strict";var break; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    133 PASS (function(){"use strict";var break; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    134 PASS "use strict";var break = 42; break === 42 threw exception SyntaxError: Expected an identifier but found 'break' instead.
    135 PASS (function(){"use strict";var break = 42; break === 42}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    136 PASS "use strict";function g(break){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    137 PASS (function(){"use strict";function g(break){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    138 PASS "use strict";/break/.test(function g(break){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'break' instead.
    139 PASS (function(){"use strict";/break/.test(function g(break){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    140 PASS "use strict";try{}catch(break){}; true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    141 PASS (function(){"use strict";try{}catch(break){}; true}); true threw exception SyntaxError: Expected an identifier but found 'break' instead.
    142 PASS "use strict";function break(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'break'.
    143 PASS (function(){"use strict";function break(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'break'.
     132PASS "use strict";var break; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     133PASS (function(){"use strict";var break; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     134PASS "use strict";var break = 42; break === 42 threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     135PASS (function(){"use strict";var break = 42; break === 42}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     136PASS "use strict";function g(break){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     137PASS (function(){"use strict";function g(break){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     138PASS "use strict";/break/.test(function g(break){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     139PASS (function(){"use strict";/break/.test(function g(break){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
     140PASS "use strict";try{}catch(break){}; true threw exception SyntaxError: Cannot use the keyword 'break' as a catch variable name..
     141PASS (function(){"use strict";try{}catch(break){}; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a catch variable name..
     142PASS "use strict";function break(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
     143PASS (function(){"use strict";function break(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
    144144PASS "use strict";({ "break": 42 }.break === 42) is true
    145145PASS (function(){"use strict";({ "break": 42 }.break === 42)}); true is true
     
    148148PASS "use strict";({ get break(){}, set break(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    149149PASS (function(){"use strict";({ get break(){}, set break(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    150 PASS var case; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    151 PASS (function(){var case; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    152 PASS var case = 42; case === 42 threw exception SyntaxError: Expected an identifier but found 'case' instead.
    153 PASS (function(){var case = 42; case === 42}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    154 PASS function g(case){  }; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    155 PASS (function(){function g(case){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    156 PASS /case/.test(function g(case){  }) threw exception SyntaxError: Expected an identifier but found 'case' instead.
    157 PASS (function(){/case/.test(function g(case){  })}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    158 PASS try{}catch(case){}; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    159 PASS (function(){try{}catch(case){}; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    160 PASS function case(){  }; true threw exception SyntaxError: Unexpected token 'case'.
    161 PASS (function(){function case(){  }; true}); true threw exception SyntaxError: Unexpected token 'case'.
     150PASS var case; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     151PASS (function(){var case; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     152PASS var case = 42; case === 42 threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     153PASS (function(){var case = 42; case === 42}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     154PASS function g(case){  }; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     155PASS (function(){function g(case){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     156PASS /case/.test(function g(case){  }) threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     157PASS (function(){/case/.test(function g(case){  })}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     158PASS try{}catch(case){}; true threw exception SyntaxError: Cannot use the keyword 'case' as a catch variable name..
     159PASS (function(){try{}catch(case){}; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a catch variable name..
     160PASS function case(){  }; true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
     161PASS (function(){function case(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
    162162PASS ({ "case": 42 }.case === 42) is true
    163163PASS (function(){({ "case": 42 }.case === 42)}); true is true
     
    166166PASS ({ get case(){}, set case(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    167167PASS (function(){({ get case(){}, set case(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    168 PASS "use strict";var case; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    169 PASS (function(){"use strict";var case; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    170 PASS "use strict";var case = 42; case === 42 threw exception SyntaxError: Expected an identifier but found 'case' instead.
    171 PASS (function(){"use strict";var case = 42; case === 42}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    172 PASS "use strict";function g(case){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    173 PASS (function(){"use strict";function g(case){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    174 PASS "use strict";/case/.test(function g(case){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'case' instead.
    175 PASS (function(){"use strict";/case/.test(function g(case){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    176 PASS "use strict";try{}catch(case){}; true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    177 PASS (function(){"use strict";try{}catch(case){}; true}); true threw exception SyntaxError: Expected an identifier but found 'case' instead.
    178 PASS "use strict";function case(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'case'.
    179 PASS (function(){"use strict";function case(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'case'.
     168PASS "use strict";var case; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     169PASS (function(){"use strict";var case; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     170PASS "use strict";var case = 42; case === 42 threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     171PASS (function(){"use strict";var case = 42; case === 42}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     172PASS "use strict";function g(case){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     173PASS (function(){"use strict";function g(case){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     174PASS "use strict";/case/.test(function g(case){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     175PASS (function(){"use strict";/case/.test(function g(case){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
     176PASS "use strict";try{}catch(case){}; true threw exception SyntaxError: Cannot use the keyword 'case' as a catch variable name..
     177PASS (function(){"use strict";try{}catch(case){}; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a catch variable name..
     178PASS "use strict";function case(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
     179PASS (function(){"use strict";function case(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
    180180PASS "use strict";({ "case": 42 }.case === 42) is true
    181181PASS (function(){"use strict";({ "case": 42 }.case === 42)}); true is true
     
    184184PASS "use strict";({ get case(){}, set case(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    185185PASS (function(){"use strict";({ get case(){}, set case(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    186 PASS var catch; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    187 PASS (function(){var catch; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    188 PASS var catch = 42; catch === 42 threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    189 PASS (function(){var catch = 42; catch === 42}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    190 PASS function g(catch){  }; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    191 PASS (function(){function g(catch){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    192 PASS /catch/.test(function g(catch){  }) threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    193 PASS (function(){/catch/.test(function g(catch){  })}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    194 PASS try{}catch(catch){}; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    195 PASS (function(){try{}catch(catch){}; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    196 PASS function catch(){  }; true threw exception SyntaxError: Unexpected token 'catch'.
    197 PASS (function(){function catch(){  }; true}); true threw exception SyntaxError: Unexpected token 'catch'.
     186PASS var catch; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     187PASS (function(){var catch; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     188PASS var catch = 42; catch === 42 threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     189PASS (function(){var catch = 42; catch === 42}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     190PASS function g(catch){  }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     191PASS (function(){function g(catch){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     192PASS /catch/.test(function g(catch){  }) threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     193PASS (function(){/catch/.test(function g(catch){  })}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     194PASS try{}catch(catch){}; true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch variable name..
     195PASS (function(){try{}catch(catch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch variable name..
     196PASS function catch(){  }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
     197PASS (function(){function catch(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
    198198PASS ({ "catch": 42 }.catch === 42) is true
    199199PASS (function(){({ "catch": 42 }.catch === 42)}); true is true
     
    202202PASS ({ get catch(){}, set catch(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    203203PASS (function(){({ get catch(){}, set catch(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    204 PASS "use strict";var catch; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    205 PASS (function(){"use strict";var catch; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    206 PASS "use strict";var catch = 42; catch === 42 threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    207 PASS (function(){"use strict";var catch = 42; catch === 42}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    208 PASS "use strict";function g(catch){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    209 PASS (function(){"use strict";function g(catch){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    210 PASS "use strict";/catch/.test(function g(catch){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    211 PASS (function(){"use strict";/catch/.test(function g(catch){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    212 PASS "use strict";try{}catch(catch){}; true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    213 PASS (function(){"use strict";try{}catch(catch){}; true}); true threw exception SyntaxError: Expected an identifier but found 'catch' instead.
    214 PASS "use strict";function catch(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'catch'.
    215 PASS (function(){"use strict";function catch(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'catch'.
     204PASS "use strict";var catch; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     205PASS (function(){"use strict";var catch; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     206PASS "use strict";var catch = 42; catch === 42 threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     207PASS (function(){"use strict";var catch = 42; catch === 42}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     208PASS "use strict";function g(catch){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     209PASS (function(){"use strict";function g(catch){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     210PASS "use strict";/catch/.test(function g(catch){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     211PASS (function(){"use strict";/catch/.test(function g(catch){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
     212PASS "use strict";try{}catch(catch){}; true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch variable name..
     213PASS (function(){"use strict";try{}catch(catch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch variable name..
     214PASS "use strict";function catch(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
     215PASS (function(){"use strict";function catch(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
    216216PASS "use strict";({ "catch": 42 }.catch === 42) is true
    217217PASS (function(){"use strict";({ "catch": 42 }.catch === 42)}); true is true
     
    220220PASS "use strict";({ get catch(){}, set catch(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    221221PASS (function(){"use strict";({ get catch(){}, set catch(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    222 PASS var continue; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    223 PASS (function(){var continue; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    224 PASS var continue = 42; continue === 42 threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    225 PASS (function(){var continue = 42; continue === 42}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    226 PASS function g(continue){  }; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    227 PASS (function(){function g(continue){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    228 PASS /continue/.test(function g(continue){  }) threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    229 PASS (function(){/continue/.test(function g(continue){  })}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    230 PASS try{}catch(continue){}; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    231 PASS (function(){try{}catch(continue){}; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    232 PASS function continue(){  }; true threw exception SyntaxError: Unexpected token 'continue'.
    233 PASS (function(){function continue(){  }; true}); true threw exception SyntaxError: Unexpected token 'continue'.
     222PASS var continue; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     223PASS (function(){var continue; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     224PASS var continue = 42; continue === 42 threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     225PASS (function(){var continue = 42; continue === 42}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     226PASS function g(continue){  }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     227PASS (function(){function g(continue){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     228PASS /continue/.test(function g(continue){  }) threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     229PASS (function(){/continue/.test(function g(continue){  })}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     230PASS try{}catch(continue){}; true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch variable name..
     231PASS (function(){try{}catch(continue){}; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch variable name..
     232PASS function continue(){  }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
     233PASS (function(){function continue(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
    234234PASS ({ "continue": 42 }.continue === 42) is true
    235235PASS (function(){({ "continue": 42 }.continue === 42)}); true is true
     
    238238PASS ({ get continue(){}, set continue(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    239239PASS (function(){({ get continue(){}, set continue(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    240 PASS "use strict";var continue; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    241 PASS (function(){"use strict";var continue; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    242 PASS "use strict";var continue = 42; continue === 42 threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    243 PASS (function(){"use strict";var continue = 42; continue === 42}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    244 PASS "use strict";function g(continue){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    245 PASS (function(){"use strict";function g(continue){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    246 PASS "use strict";/continue/.test(function g(continue){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    247 PASS (function(){"use strict";/continue/.test(function g(continue){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    248 PASS "use strict";try{}catch(continue){}; true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    249 PASS (function(){"use strict";try{}catch(continue){}; true}); true threw exception SyntaxError: Expected an identifier but found 'continue' instead.
    250 PASS "use strict";function continue(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'continue'.
    251 PASS (function(){"use strict";function continue(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'continue'.
     240PASS "use strict";var continue; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     241PASS (function(){"use strict";var continue; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     242PASS "use strict";var continue = 42; continue === 42 threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     243PASS (function(){"use strict";var continue = 42; continue === 42}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     244PASS "use strict";function g(continue){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     245PASS (function(){"use strict";function g(continue){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     246PASS "use strict";/continue/.test(function g(continue){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     247PASS (function(){"use strict";/continue/.test(function g(continue){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
     248PASS "use strict";try{}catch(continue){}; true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch variable name..
     249PASS (function(){"use strict";try{}catch(continue){}; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch variable name..
     250PASS "use strict";function continue(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
     251PASS (function(){"use strict";function continue(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
    252252PASS "use strict";({ "continue": 42 }.continue === 42) is true
    253253PASS (function(){"use strict";({ "continue": 42 }.continue === 42)}); true is true
     
    256256PASS "use strict";({ get continue(){}, set continue(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    257257PASS (function(){"use strict";({ get continue(){}, set continue(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    258 PASS var debugger; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    259 PASS (function(){var debugger; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    260 PASS var debugger = 42; debugger === 42 threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    261 PASS (function(){var debugger = 42; debugger === 42}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    262 PASS function g(debugger){  }; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    263 PASS (function(){function g(debugger){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    264 PASS /debugger/.test(function g(debugger){  }) threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    265 PASS (function(){/debugger/.test(function g(debugger){  })}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    266 PASS try{}catch(debugger){}; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    267 PASS (function(){try{}catch(debugger){}; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    268 PASS function debugger(){  }; true threw exception SyntaxError: Unexpected token 'debugger'.
    269 PASS (function(){function debugger(){  }; true}); true threw exception SyntaxError: Unexpected token 'debugger'.
     258PASS var debugger; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     259PASS (function(){var debugger; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     260PASS var debugger = 42; debugger === 42 threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     261PASS (function(){var debugger = 42; debugger === 42}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     262PASS function g(debugger){  }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     263PASS (function(){function g(debugger){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     264PASS /debugger/.test(function g(debugger){  }) threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     265PASS (function(){/debugger/.test(function g(debugger){  })}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     266PASS try{}catch(debugger){}; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch variable name..
     267PASS (function(){try{}catch(debugger){}; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch variable name..
     268PASS function debugger(){  }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
     269PASS (function(){function debugger(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
    270270PASS ({ "debugger": 42 }.debugger === 42) is true
    271271PASS (function(){({ "debugger": 42 }.debugger === 42)}); true is true
     
    274274PASS ({ get debugger(){}, set debugger(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    275275PASS (function(){({ get debugger(){}, set debugger(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    276 PASS "use strict";var debugger; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    277 PASS (function(){"use strict";var debugger; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    278 PASS "use strict";var debugger = 42; debugger === 42 threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    279 PASS (function(){"use strict";var debugger = 42; debugger === 42}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    280 PASS "use strict";function g(debugger){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    281 PASS (function(){"use strict";function g(debugger){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    282 PASS "use strict";/debugger/.test(function g(debugger){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    283 PASS (function(){"use strict";/debugger/.test(function g(debugger){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    284 PASS "use strict";try{}catch(debugger){}; true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    285 PASS (function(){"use strict";try{}catch(debugger){}; true}); true threw exception SyntaxError: Expected an identifier but found 'debugger' instead.
    286 PASS "use strict";function debugger(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'debugger'.
    287 PASS (function(){"use strict";function debugger(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'debugger'.
     276PASS "use strict";var debugger; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     277PASS (function(){"use strict";var debugger; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     278PASS "use strict";var debugger = 42; debugger === 42 threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     279PASS (function(){"use strict";var debugger = 42; debugger === 42}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     280PASS "use strict";function g(debugger){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     281PASS (function(){"use strict";function g(debugger){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     282PASS "use strict";/debugger/.test(function g(debugger){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     283PASS (function(){"use strict";/debugger/.test(function g(debugger){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
     284PASS "use strict";try{}catch(debugger){}; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch variable name..
     285PASS (function(){"use strict";try{}catch(debugger){}; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch variable name..
     286PASS "use strict";function debugger(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
     287PASS (function(){"use strict";function debugger(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
    288288PASS "use strict";({ "debugger": 42 }.debugger === 42) is true
    289289PASS (function(){"use strict";({ "debugger": 42 }.debugger === 42)}); true is true
     
    292292PASS "use strict";({ get debugger(){}, set debugger(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    293293PASS (function(){"use strict";({ get debugger(){}, set debugger(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    294 PASS var default; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    295 PASS (function(){var default; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    296 PASS var default = 42; default === 42 threw exception SyntaxError: Expected an identifier but found 'default' instead.
    297 PASS (function(){var default = 42; default === 42}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    298 PASS function g(default){  }; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    299 PASS (function(){function g(default){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    300 PASS /default/.test(function g(default){  }) threw exception SyntaxError: Expected an identifier but found 'default' instead.
    301 PASS (function(){/default/.test(function g(default){  })}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    302 PASS try{}catch(default){}; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    303 PASS (function(){try{}catch(default){}; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    304 PASS function default(){  }; true threw exception SyntaxError: Unexpected token 'default'.
    305 PASS (function(){function default(){  }; true}); true threw exception SyntaxError: Unexpected token 'default'.
     294PASS var default; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     295PASS (function(){var default; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     296PASS var default = 42; default === 42 threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     297PASS (function(){var default = 42; default === 42}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     298PASS function g(default){  }; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     299PASS (function(){function g(default){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     300PASS /default/.test(function g(default){  }) threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     301PASS (function(){/default/.test(function g(default){  })}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     302PASS try{}catch(default){}; true threw exception SyntaxError: Cannot use the keyword 'default' as a catch variable name..
     303PASS (function(){try{}catch(default){}; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a catch variable name..
     304PASS function default(){  }; true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
     305PASS (function(){function default(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
    306306PASS ({ "default": 42 }.default === 42) is true
    307307PASS (function(){({ "default": 42 }.default === 42)}); true is true
     
    310310PASS ({ get default(){}, set default(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    311311PASS (function(){({ get default(){}, set default(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    312 PASS "use strict";var default; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    313 PASS (function(){"use strict";var default; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    314 PASS "use strict";var default = 42; default === 42 threw exception SyntaxError: Expected an identifier but found 'default' instead.
    315 PASS (function(){"use strict";var default = 42; default === 42}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    316 PASS "use strict";function g(default){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    317 PASS (function(){"use strict";function g(default){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    318 PASS "use strict";/default/.test(function g(default){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'default' instead.
    319 PASS (function(){"use strict";/default/.test(function g(default){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    320 PASS "use strict";try{}catch(default){}; true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    321 PASS (function(){"use strict";try{}catch(default){}; true}); true threw exception SyntaxError: Expected an identifier but found 'default' instead.
    322 PASS "use strict";function default(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'default'.
    323 PASS (function(){"use strict";function default(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'default'.
     312PASS "use strict";var default; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     313PASS (function(){"use strict";var default; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     314PASS "use strict";var default = 42; default === 42 threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     315PASS (function(){"use strict";var default = 42; default === 42}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     316PASS "use strict";function g(default){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     317PASS (function(){"use strict";function g(default){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     318PASS "use strict";/default/.test(function g(default){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     319PASS (function(){"use strict";/default/.test(function g(default){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
     320PASS "use strict";try{}catch(default){}; true threw exception SyntaxError: Cannot use the keyword 'default' as a catch variable name..
     321PASS (function(){"use strict";try{}catch(default){}; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a catch variable name..
     322PASS "use strict";function default(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
     323PASS (function(){"use strict";function default(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
    324324PASS "use strict";({ "default": 42 }.default === 42) is true
    325325PASS (function(){"use strict";({ "default": 42 }.default === 42)}); true is true
     
    328328PASS "use strict";({ get default(){}, set default(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    329329PASS (function(){"use strict";({ get default(){}, set default(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    330 PASS var delete; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    331 PASS (function(){var delete; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    332 PASS var delete = 42; delete === 42 threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    333 PASS (function(){var delete = 42; delete === 42}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    334 PASS function g(delete){  }; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    335 PASS (function(){function g(delete){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    336 PASS /delete/.test(function g(delete){  }) threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    337 PASS (function(){/delete/.test(function g(delete){  })}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    338 PASS try{}catch(delete){}; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    339 PASS (function(){try{}catch(delete){}; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    340 PASS function delete(){  }; true threw exception SyntaxError: Unexpected token 'delete'.
    341 PASS (function(){function delete(){  }; true}); true threw exception SyntaxError: Unexpected token 'delete'.
     330PASS var delete; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     331PASS (function(){var delete; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     332PASS var delete = 42; delete === 42 threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     333PASS (function(){var delete = 42; delete === 42}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     334PASS function g(delete){  }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     335PASS (function(){function g(delete){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     336PASS /delete/.test(function g(delete){  }) threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     337PASS (function(){/delete/.test(function g(delete){  })}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     338PASS try{}catch(delete){}; true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch variable name..
     339PASS (function(){try{}catch(delete){}; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch variable name..
     340PASS function delete(){  }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
     341PASS (function(){function delete(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
    342342PASS ({ "delete": 42 }.delete === 42) is true
    343343PASS (function(){({ "delete": 42 }.delete === 42)}); true is true
     
    346346PASS ({ get delete(){}, set delete(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    347347PASS (function(){({ get delete(){}, set delete(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    348 PASS "use strict";var delete; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    349 PASS (function(){"use strict";var delete; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    350 PASS "use strict";var delete = 42; delete === 42 threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    351 PASS (function(){"use strict";var delete = 42; delete === 42}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    352 PASS "use strict";function g(delete){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    353 PASS (function(){"use strict";function g(delete){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    354 PASS "use strict";/delete/.test(function g(delete){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    355 PASS (function(){"use strict";/delete/.test(function g(delete){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    356 PASS "use strict";try{}catch(delete){}; true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    357 PASS (function(){"use strict";try{}catch(delete){}; true}); true threw exception SyntaxError: Expected an identifier but found 'delete' instead.
    358 PASS "use strict";function delete(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'delete'.
    359 PASS (function(){"use strict";function delete(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'delete'.
     348PASS "use strict";var delete; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     349PASS (function(){"use strict";var delete; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     350PASS "use strict";var delete = 42; delete === 42 threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     351PASS (function(){"use strict";var delete = 42; delete === 42}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     352PASS "use strict";function g(delete){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     353PASS (function(){"use strict";function g(delete){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     354PASS "use strict";/delete/.test(function g(delete){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     355PASS (function(){"use strict";/delete/.test(function g(delete){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
     356PASS "use strict";try{}catch(delete){}; true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch variable name..
     357PASS (function(){"use strict";try{}catch(delete){}; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch variable name..
     358PASS "use strict";function delete(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
     359PASS (function(){"use strict";function delete(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
    360360PASS "use strict";({ "delete": 42 }.delete === 42) is true
    361361PASS (function(){"use strict";({ "delete": 42 }.delete === 42)}); true is true
     
    364364PASS "use strict";({ get delete(){}, set delete(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    365365PASS (function(){"use strict";({ get delete(){}, set delete(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    366 PASS var do; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    367 PASS (function(){var do; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    368 PASS var do = 42; do === 42 threw exception SyntaxError: Expected an identifier but found 'do' instead.
    369 PASS (function(){var do = 42; do === 42}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    370 PASS function g(do){  }; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    371 PASS (function(){function g(do){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    372 PASS /do/.test(function g(do){  }) threw exception SyntaxError: Expected an identifier but found 'do' instead.
    373 PASS (function(){/do/.test(function g(do){  })}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    374 PASS try{}catch(do){}; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    375 PASS (function(){try{}catch(do){}; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    376 PASS function do(){  }; true threw exception SyntaxError: Unexpected token 'do'.
    377 PASS (function(){function do(){  }; true}); true threw exception SyntaxError: Unexpected token 'do'.
     366PASS var do; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     367PASS (function(){var do; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     368PASS var do = 42; do === 42 threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     369PASS (function(){var do = 42; do === 42}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     370PASS function g(do){  }; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     371PASS (function(){function g(do){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     372PASS /do/.test(function g(do){  }) threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     373PASS (function(){/do/.test(function g(do){  })}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     374PASS try{}catch(do){}; true threw exception SyntaxError: Cannot use the keyword 'do' as a catch variable name..
     375PASS (function(){try{}catch(do){}; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a catch variable name..
     376PASS function do(){  }; true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
     377PASS (function(){function do(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
    378378PASS ({ "do": 42 }.do === 42) is true
    379379PASS (function(){({ "do": 42 }.do === 42)}); true is true
     
    382382PASS ({ get do(){}, set do(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    383383PASS (function(){({ get do(){}, set do(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    384 PASS "use strict";var do; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    385 PASS (function(){"use strict";var do; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    386 PASS "use strict";var do = 42; do === 42 threw exception SyntaxError: Expected an identifier but found 'do' instead.
    387 PASS (function(){"use strict";var do = 42; do === 42}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    388 PASS "use strict";function g(do){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    389 PASS (function(){"use strict";function g(do){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    390 PASS "use strict";/do/.test(function g(do){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'do' instead.
    391 PASS (function(){"use strict";/do/.test(function g(do){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    392 PASS "use strict";try{}catch(do){}; true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    393 PASS (function(){"use strict";try{}catch(do){}; true}); true threw exception SyntaxError: Expected an identifier but found 'do' instead.
    394 PASS "use strict";function do(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'do'.
    395 PASS (function(){"use strict";function do(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'do'.
     384PASS "use strict";var do; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     385PASS (function(){"use strict";var do; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     386PASS "use strict";var do = 42; do === 42 threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     387PASS (function(){"use strict";var do = 42; do === 42}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     388PASS "use strict";function g(do){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     389PASS (function(){"use strict";function g(do){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     390PASS "use strict";/do/.test(function g(do){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     391PASS (function(){"use strict";/do/.test(function g(do){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
     392PASS "use strict";try{}catch(do){}; true threw exception SyntaxError: Cannot use the keyword 'do' as a catch variable name..
     393PASS (function(){"use strict";try{}catch(do){}; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a catch variable name..
     394PASS "use strict";function do(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
     395PASS (function(){"use strict";function do(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
    396396PASS "use strict";({ "do": 42 }.do === 42) is true
    397397PASS (function(){"use strict";({ "do": 42 }.do === 42)}); true is true
     
    400400PASS "use strict";({ get do(){}, set do(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    401401PASS (function(){"use strict";({ get do(){}, set do(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    402 PASS var else; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    403 PASS (function(){var else; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    404 PASS var else = 42; else === 42 threw exception SyntaxError: Expected an identifier but found 'else' instead.
    405 PASS (function(){var else = 42; else === 42}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    406 PASS function g(else){  }; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    407 PASS (function(){function g(else){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    408 PASS /else/.test(function g(else){  }) threw exception SyntaxError: Expected an identifier but found 'else' instead.
    409 PASS (function(){/else/.test(function g(else){  })}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    410 PASS try{}catch(else){}; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    411 PASS (function(){try{}catch(else){}; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    412 PASS function else(){  }; true threw exception SyntaxError: Unexpected token 'else'.
    413 PASS (function(){function else(){  }; true}); true threw exception SyntaxError: Unexpected token 'else'.
     402PASS var else; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     403PASS (function(){var else; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     404PASS var else = 42; else === 42 threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     405PASS (function(){var else = 42; else === 42}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     406PASS function g(else){  }; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     407PASS (function(){function g(else){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     408PASS /else/.test(function g(else){  }) threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     409PASS (function(){/else/.test(function g(else){  })}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     410PASS try{}catch(else){}; true threw exception SyntaxError: Cannot use the keyword 'else' as a catch variable name..
     411PASS (function(){try{}catch(else){}; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a catch variable name..
     412PASS function else(){  }; true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
     413PASS (function(){function else(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
    414414PASS ({ "else": 42 }.else === 42) is true
    415415PASS (function(){({ "else": 42 }.else === 42)}); true is true
     
    418418PASS ({ get else(){}, set else(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    419419PASS (function(){({ get else(){}, set else(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    420 PASS "use strict";var else; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    421 PASS (function(){"use strict";var else; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    422 PASS "use strict";var else = 42; else === 42 threw exception SyntaxError: Expected an identifier but found 'else' instead.
    423 PASS (function(){"use strict";var else = 42; else === 42}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    424 PASS "use strict";function g(else){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    425 PASS (function(){"use strict";function g(else){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    426 PASS "use strict";/else/.test(function g(else){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'else' instead.
    427 PASS (function(){"use strict";/else/.test(function g(else){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    428 PASS "use strict";try{}catch(else){}; true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    429 PASS (function(){"use strict";try{}catch(else){}; true}); true threw exception SyntaxError: Expected an identifier but found 'else' instead.
    430 PASS "use strict";function else(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'else'.
    431 PASS (function(){"use strict";function else(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'else'.
     420PASS "use strict";var else; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     421PASS (function(){"use strict";var else; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     422PASS "use strict";var else = 42; else === 42 threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     423PASS (function(){"use strict";var else = 42; else === 42}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     424PASS "use strict";function g(else){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     425PASS (function(){"use strict";function g(else){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     426PASS "use strict";/else/.test(function g(else){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     427PASS (function(){"use strict";/else/.test(function g(else){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
     428PASS "use strict";try{}catch(else){}; true threw exception SyntaxError: Cannot use the keyword 'else' as a catch variable name..
     429PASS (function(){"use strict";try{}catch(else){}; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a catch variable name..
     430PASS "use strict";function else(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
     431PASS (function(){"use strict";function else(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
    432432PASS "use strict";({ "else": 42 }.else === 42) is true
    433433PASS (function(){"use strict";({ "else": 42 }.else === 42)}); true is true
     
    436436PASS "use strict";({ get else(){}, set else(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    437437PASS (function(){"use strict";({ get else(){}, set else(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    438 PASS var finally; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    439 PASS (function(){var finally; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    440 PASS var finally = 42; finally === 42 threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    441 PASS (function(){var finally = 42; finally === 42}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    442 PASS function g(finally){  }; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    443 PASS (function(){function g(finally){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    444 PASS /finally/.test(function g(finally){  }) threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    445 PASS (function(){/finally/.test(function g(finally){  })}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    446 PASS try{}catch(finally){}; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    447 PASS (function(){try{}catch(finally){}; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    448 PASS function finally(){  }; true threw exception SyntaxError: Unexpected token 'finally'.
    449 PASS (function(){function finally(){  }; true}); true threw exception SyntaxError: Unexpected token 'finally'.
     438PASS var finally; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     439PASS (function(){var finally; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     440PASS var finally = 42; finally === 42 threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     441PASS (function(){var finally = 42; finally === 42}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     442PASS function g(finally){  }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     443PASS (function(){function g(finally){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     444PASS /finally/.test(function g(finally){  }) threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     445PASS (function(){/finally/.test(function g(finally){  })}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     446PASS try{}catch(finally){}; true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch variable name..
     447PASS (function(){try{}catch(finally){}; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch variable name..
     448PASS function finally(){  }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
     449PASS (function(){function finally(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
    450450PASS ({ "finally": 42 }.finally === 42) is true
    451451PASS (function(){({ "finally": 42 }.finally === 42)}); true is true
     
    454454PASS ({ get finally(){}, set finally(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    455455PASS (function(){({ get finally(){}, set finally(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    456 PASS "use strict";var finally; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    457 PASS (function(){"use strict";var finally; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    458 PASS "use strict";var finally = 42; finally === 42 threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    459 PASS (function(){"use strict";var finally = 42; finally === 42}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    460 PASS "use strict";function g(finally){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    461 PASS (function(){"use strict";function g(finally){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    462 PASS "use strict";/finally/.test(function g(finally){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    463 PASS (function(){"use strict";/finally/.test(function g(finally){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    464 PASS "use strict";try{}catch(finally){}; true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    465 PASS (function(){"use strict";try{}catch(finally){}; true}); true threw exception SyntaxError: Expected an identifier but found 'finally' instead.
    466 PASS "use strict";function finally(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'finally'.
    467 PASS (function(){"use strict";function finally(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'finally'.
     456PASS "use strict";var finally; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     457PASS (function(){"use strict";var finally; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     458PASS "use strict";var finally = 42; finally === 42 threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     459PASS (function(){"use strict";var finally = 42; finally === 42}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     460PASS "use strict";function g(finally){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     461PASS (function(){"use strict";function g(finally){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     462PASS "use strict";/finally/.test(function g(finally){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     463PASS (function(){"use strict";/finally/.test(function g(finally){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
     464PASS "use strict";try{}catch(finally){}; true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch variable name..
     465PASS (function(){"use strict";try{}catch(finally){}; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch variable name..
     466PASS "use strict";function finally(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
     467PASS (function(){"use strict";function finally(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
    468468PASS "use strict";({ "finally": 42 }.finally === 42) is true
    469469PASS (function(){"use strict";({ "finally": 42 }.finally === 42)}); true is true
     
    472472PASS "use strict";({ get finally(){}, set finally(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    473473PASS (function(){"use strict";({ get finally(){}, set finally(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    474 PASS var for; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    475 PASS (function(){var for; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    476 PASS var for = 42; for === 42 threw exception SyntaxError: Expected an identifier but found 'for' instead.
    477 PASS (function(){var for = 42; for === 42}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    478 PASS function g(for){  }; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    479 PASS (function(){function g(for){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    480 PASS /for/.test(function g(for){  }) threw exception SyntaxError: Expected an identifier but found 'for' instead.
    481 PASS (function(){/for/.test(function g(for){  })}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    482 PASS try{}catch(for){}; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    483 PASS (function(){try{}catch(for){}; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    484 PASS function for(){  }; true threw exception SyntaxError: Unexpected token 'for'.
    485 PASS (function(){function for(){  }; true}); true threw exception SyntaxError: Unexpected token 'for'.
     474PASS var for; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     475PASS (function(){var for; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     476PASS var for = 42; for === 42 threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     477PASS (function(){var for = 42; for === 42}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     478PASS function g(for){  }; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     479PASS (function(){function g(for){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     480PASS /for/.test(function g(for){  }) threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     481PASS (function(){/for/.test(function g(for){  })}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     482PASS try{}catch(for){}; true threw exception SyntaxError: Cannot use the keyword 'for' as a catch variable name..
     483PASS (function(){try{}catch(for){}; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a catch variable name..
     484PASS function for(){  }; true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
     485PASS (function(){function for(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
    486486PASS ({ "for": 42 }.for === 42) is true
    487487PASS (function(){({ "for": 42 }.for === 42)}); true is true
     
    490490PASS ({ get for(){}, set for(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    491491PASS (function(){({ get for(){}, set for(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    492 PASS "use strict";var for; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    493 PASS (function(){"use strict";var for; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    494 PASS "use strict";var for = 42; for === 42 threw exception SyntaxError: Expected an identifier but found 'for' instead.
    495 PASS (function(){"use strict";var for = 42; for === 42}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    496 PASS "use strict";function g(for){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    497 PASS (function(){"use strict";function g(for){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    498 PASS "use strict";/for/.test(function g(for){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'for' instead.
    499 PASS (function(){"use strict";/for/.test(function g(for){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    500 PASS "use strict";try{}catch(for){}; true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    501 PASS (function(){"use strict";try{}catch(for){}; true}); true threw exception SyntaxError: Expected an identifier but found 'for' instead.
    502 PASS "use strict";function for(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'for'.
    503 PASS (function(){"use strict";function for(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'for'.
     492PASS "use strict";var for; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     493PASS (function(){"use strict";var for; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     494PASS "use strict";var for = 42; for === 42 threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     495PASS (function(){"use strict";var for = 42; for === 42}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     496PASS "use strict";function g(for){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     497PASS (function(){"use strict";function g(for){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     498PASS "use strict";/for/.test(function g(for){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     499PASS (function(){"use strict";/for/.test(function g(for){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
     500PASS "use strict";try{}catch(for){}; true threw exception SyntaxError: Cannot use the keyword 'for' as a catch variable name..
     501PASS (function(){"use strict";try{}catch(for){}; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a catch variable name..
     502PASS "use strict";function for(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
     503PASS (function(){"use strict";function for(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
    504504PASS "use strict";({ "for": 42 }.for === 42) is true
    505505PASS (function(){"use strict";({ "for": 42 }.for === 42)}); true is true
     
    508508PASS "use strict";({ get for(){}, set for(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    509509PASS (function(){"use strict";({ get for(){}, set for(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    510 PASS var function; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    511 PASS (function(){var function; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    512 PASS var function = 42; function === 42 threw exception SyntaxError: Expected an identifier but found 'function' instead.
    513 PASS (function(){var function = 42; function === 42}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    514 PASS function g(function){  }; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    515 PASS (function(){function g(function){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    516 PASS /function/.test(function g(function){  }) threw exception SyntaxError: Expected an identifier but found 'function' instead.
    517 PASS (function(){/function/.test(function g(function){  })}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    518 PASS try{}catch(function){}; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    519 PASS (function(){try{}catch(function){}; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    520 PASS function function(){  }; true threw exception SyntaxError: Unexpected token 'function'.
    521 PASS (function(){function function(){  }; true}); true threw exception SyntaxError: Unexpected token 'function'.
     510PASS var function; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     511PASS (function(){var function; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     512PASS var function = 42; function === 42 threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     513PASS (function(){var function = 42; function === 42}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     514PASS function g(function){  }; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     515PASS (function(){function g(function){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     516PASS /function/.test(function g(function){  }) threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     517PASS (function(){/function/.test(function g(function){  })}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     518PASS try{}catch(function){}; true threw exception SyntaxError: Cannot use the keyword 'function' as a catch variable name..
     519PASS (function(){try{}catch(function){}; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a catch variable name..
     520PASS function function(){  }; true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
     521PASS (function(){function function(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
    522522PASS ({ "function": 42 }.function === 42) is true
    523523PASS (function(){({ "function": 42 }.function === 42)}); true is true
     
    526526PASS ({ get function(){}, set function(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    527527PASS (function(){({ get function(){}, set function(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    528 PASS "use strict";var function; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    529 PASS (function(){"use strict";var function; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    530 PASS "use strict";var function = 42; function === 42 threw exception SyntaxError: Expected an identifier but found 'function' instead.
    531 PASS (function(){"use strict";var function = 42; function === 42}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    532 PASS "use strict";function g(function){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    533 PASS (function(){"use strict";function g(function){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    534 PASS "use strict";/function/.test(function g(function){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'function' instead.
    535 PASS (function(){"use strict";/function/.test(function g(function){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    536 PASS "use strict";try{}catch(function){}; true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    537 PASS (function(){"use strict";try{}catch(function){}; true}); true threw exception SyntaxError: Expected an identifier but found 'function' instead.
    538 PASS "use strict";function function(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'function'.
    539 PASS (function(){"use strict";function function(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'function'.
     528PASS "use strict";var function; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     529PASS (function(){"use strict";var function; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     530PASS "use strict";var function = 42; function === 42 threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     531PASS (function(){"use strict";var function = 42; function === 42}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     532PASS "use strict";function g(function){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     533PASS (function(){"use strict";function g(function){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     534PASS "use strict";/function/.test(function g(function){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     535PASS (function(){"use strict";/function/.test(function g(function){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
     536PASS "use strict";try{}catch(function){}; true threw exception SyntaxError: Cannot use the keyword 'function' as a catch variable name..
     537PASS (function(){"use strict";try{}catch(function){}; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a catch variable name..
     538PASS "use strict";function function(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
     539PASS (function(){"use strict";function function(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
    540540PASS "use strict";({ "function": 42 }.function === 42) is true
    541541PASS (function(){"use strict";({ "function": 42 }.function === 42)}); true is true
     
    544544PASS "use strict";({ get function(){}, set function(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    545545PASS (function(){"use strict";({ get function(){}, set function(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    546 PASS var if; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    547 PASS (function(){var if; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    548 PASS var if = 42; if === 42 threw exception SyntaxError: Expected an identifier but found 'if' instead.
    549 PASS (function(){var if = 42; if === 42}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    550 PASS function g(if){  }; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    551 PASS (function(){function g(if){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    552 PASS /if/.test(function g(if){  }) threw exception SyntaxError: Expected an identifier but found 'if' instead.
    553 PASS (function(){/if/.test(function g(if){  })}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    554 PASS try{}catch(if){}; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    555 PASS (function(){try{}catch(if){}; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    556 PASS function if(){  }; true threw exception SyntaxError: Unexpected token 'if'.
    557 PASS (function(){function if(){  }; true}); true threw exception SyntaxError: Unexpected token 'if'.
     546PASS var if; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     547PASS (function(){var if; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     548PASS var if = 42; if === 42 threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     549PASS (function(){var if = 42; if === 42}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     550PASS function g(if){  }; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     551PASS (function(){function g(if){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     552PASS /if/.test(function g(if){  }) threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     553PASS (function(){/if/.test(function g(if){  })}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     554PASS try{}catch(if){}; true threw exception SyntaxError: Cannot use the keyword 'if' as a catch variable name..
     555PASS (function(){try{}catch(if){}; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a catch variable name..
     556PASS function if(){  }; true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
     557PASS (function(){function if(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
    558558PASS ({ "if": 42 }.if === 42) is true
    559559PASS (function(){({ "if": 42 }.if === 42)}); true is true
     
    562562PASS ({ get if(){}, set if(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    563563PASS (function(){({ get if(){}, set if(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    564 PASS "use strict";var if; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    565 PASS (function(){"use strict";var if; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    566 PASS "use strict";var if = 42; if === 42 threw exception SyntaxError: Expected an identifier but found 'if' instead.
    567 PASS (function(){"use strict";var if = 42; if === 42}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    568 PASS "use strict";function g(if){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    569 PASS (function(){"use strict";function g(if){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    570 PASS "use strict";/if/.test(function g(if){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'if' instead.
    571 PASS (function(){"use strict";/if/.test(function g(if){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    572 PASS "use strict";try{}catch(if){}; true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    573 PASS (function(){"use strict";try{}catch(if){}; true}); true threw exception SyntaxError: Expected an identifier but found 'if' instead.
    574 PASS "use strict";function if(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'if'.
    575 PASS (function(){"use strict";function if(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'if'.
     564PASS "use strict";var if; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     565PASS (function(){"use strict";var if; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     566PASS "use strict";var if = 42; if === 42 threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     567PASS (function(){"use strict";var if = 42; if === 42}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     568PASS "use strict";function g(if){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     569PASS (function(){"use strict";function g(if){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     570PASS "use strict";/if/.test(function g(if){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     571PASS (function(){"use strict";/if/.test(function g(if){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
     572PASS "use strict";try{}catch(if){}; true threw exception SyntaxError: Cannot use the keyword 'if' as a catch variable name..
     573PASS (function(){"use strict";try{}catch(if){}; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a catch variable name..
     574PASS "use strict";function if(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
     575PASS (function(){"use strict";function if(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
    576576PASS "use strict";({ "if": 42 }.if === 42) is true
    577577PASS (function(){"use strict";({ "if": 42 }.if === 42)}); true is true
     
    580580PASS "use strict";({ get if(){}, set if(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    581581PASS (function(){"use strict";({ get if(){}, set if(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    582 PASS var in; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    583 PASS (function(){var in; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    584 PASS var in = 42; in === 42 threw exception SyntaxError: Expected an identifier but found 'in' instead.
    585 PASS (function(){var in = 42; in === 42}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    586 PASS function g(in){  }; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    587 PASS (function(){function g(in){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    588 PASS /in/.test(function g(in){  }) threw exception SyntaxError: Expected an identifier but found 'in' instead.
    589 PASS (function(){/in/.test(function g(in){  })}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    590 PASS try{}catch(in){}; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    591 PASS (function(){try{}catch(in){}; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    592 PASS function in(){  }; true threw exception SyntaxError: Unexpected token 'in'.
    593 PASS (function(){function in(){  }; true}); true threw exception SyntaxError: Unexpected token 'in'.
     582PASS var in; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     583PASS (function(){var in; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     584PASS var in = 42; in === 42 threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     585PASS (function(){var in = 42; in === 42}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     586PASS function g(in){  }; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     587PASS (function(){function g(in){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     588PASS /in/.test(function g(in){  }) threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     589PASS (function(){/in/.test(function g(in){  })}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     590PASS try{}catch(in){}; true threw exception SyntaxError: Cannot use the keyword 'in' as a catch variable name..
     591PASS (function(){try{}catch(in){}; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a catch variable name..
     592PASS function in(){  }; true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
     593PASS (function(){function in(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
    594594PASS ({ "in": 42 }.in === 42) is true
    595595PASS (function(){({ "in": 42 }.in === 42)}); true is true
     
    598598PASS ({ get in(){}, set in(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    599599PASS (function(){({ get in(){}, set in(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    600 PASS "use strict";var in; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    601 PASS (function(){"use strict";var in; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    602 PASS "use strict";var in = 42; in === 42 threw exception SyntaxError: Expected an identifier but found 'in' instead.
    603 PASS (function(){"use strict";var in = 42; in === 42}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    604 PASS "use strict";function g(in){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    605 PASS (function(){"use strict";function g(in){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    606 PASS "use strict";/in/.test(function g(in){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'in' instead.
    607 PASS (function(){"use strict";/in/.test(function g(in){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    608 PASS "use strict";try{}catch(in){}; true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    609 PASS (function(){"use strict";try{}catch(in){}; true}); true threw exception SyntaxError: Expected an identifier but found 'in' instead.
    610 PASS "use strict";function in(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'in'.
    611 PASS (function(){"use strict";function in(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'in'.
     600PASS "use strict";var in; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     601PASS (function(){"use strict";var in; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     602PASS "use strict";var in = 42; in === 42 threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     603PASS (function(){"use strict";var in = 42; in === 42}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     604PASS "use strict";function g(in){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     605PASS (function(){"use strict";function g(in){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     606PASS "use strict";/in/.test(function g(in){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     607PASS (function(){"use strict";/in/.test(function g(in){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
     608PASS "use strict";try{}catch(in){}; true threw exception SyntaxError: Cannot use the keyword 'in' as a catch variable name..
     609PASS (function(){"use strict";try{}catch(in){}; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a catch variable name..
     610PASS "use strict";function in(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
     611PASS (function(){"use strict";function in(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
    612612PASS "use strict";({ "in": 42 }.in === 42) is true
    613613PASS (function(){"use strict";({ "in": 42 }.in === 42)}); true is true
     
    616616PASS "use strict";({ get in(){}, set in(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    617617PASS (function(){"use strict";({ get in(){}, set in(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    618 PASS var instanceof; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    619 PASS (function(){var instanceof; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    620 PASS var instanceof = 42; instanceof === 42 threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    621 PASS (function(){var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    622 PASS function g(instanceof){  }; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    623 PASS (function(){function g(instanceof){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    624 PASS /instanceof/.test(function g(instanceof){  }) threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    625 PASS (function(){/instanceof/.test(function g(instanceof){  })}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    626 PASS try{}catch(instanceof){}; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    627 PASS (function(){try{}catch(instanceof){}; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    628 PASS function instanceof(){  }; true threw exception SyntaxError: Unexpected token 'instanceof'.
    629 PASS (function(){function instanceof(){  }; true}); true threw exception SyntaxError: Unexpected token 'instanceof'.
     618PASS var instanceof; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     619PASS (function(){var instanceof; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     620PASS var instanceof = 42; instanceof === 42 threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     621PASS (function(){var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     622PASS function g(instanceof){  }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     623PASS (function(){function g(instanceof){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     624PASS /instanceof/.test(function g(instanceof){  }) threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     625PASS (function(){/instanceof/.test(function g(instanceof){  })}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     626PASS try{}catch(instanceof){}; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch variable name..
     627PASS (function(){try{}catch(instanceof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch variable name..
     628PASS function instanceof(){  }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
     629PASS (function(){function instanceof(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
    630630PASS ({ "instanceof": 42 }.instanceof === 42) is true
    631631PASS (function(){({ "instanceof": 42 }.instanceof === 42)}); true is true
     
    634634PASS ({ get instanceof(){}, set instanceof(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    635635PASS (function(){({ get instanceof(){}, set instanceof(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    636 PASS "use strict";var instanceof; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    637 PASS (function(){"use strict";var instanceof; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    638 PASS "use strict";var instanceof = 42; instanceof === 42 threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    639 PASS (function(){"use strict";var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    640 PASS "use strict";function g(instanceof){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    641 PASS (function(){"use strict";function g(instanceof){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    642 PASS "use strict";/instanceof/.test(function g(instanceof){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    643 PASS (function(){"use strict";/instanceof/.test(function g(instanceof){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    644 PASS "use strict";try{}catch(instanceof){}; true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    645 PASS (function(){"use strict";try{}catch(instanceof){}; true}); true threw exception SyntaxError: Expected an identifier but found 'instanceof' instead.
    646 PASS "use strict";function instanceof(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'instanceof'.
    647 PASS (function(){"use strict";function instanceof(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'instanceof'.
     636PASS "use strict";var instanceof; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     637PASS (function(){"use strict";var instanceof; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     638PASS "use strict";var instanceof = 42; instanceof === 42 threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     639PASS (function(){"use strict";var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     640PASS "use strict";function g(instanceof){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     641PASS (function(){"use strict";function g(instanceof){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     642PASS "use strict";/instanceof/.test(function g(instanceof){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     643PASS (function(){"use strict";/instanceof/.test(function g(instanceof){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
     644PASS "use strict";try{}catch(instanceof){}; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch variable name..
     645PASS (function(){"use strict";try{}catch(instanceof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch variable name..
     646PASS "use strict";function instanceof(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
     647PASS (function(){"use strict";function instanceof(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
    648648PASS "use strict";({ "instanceof": 42 }.instanceof === 42) is true
    649649PASS (function(){"use strict";({ "instanceof": 42 }.instanceof === 42)}); true is true
     
    652652PASS "use strict";({ get instanceof(){}, set instanceof(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    653653PASS (function(){"use strict";({ get instanceof(){}, set instanceof(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    654 PASS var new; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    655 PASS (function(){var new; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    656 PASS var new = 42; new === 42 threw exception SyntaxError: Expected an identifier but found 'new' instead.
    657 PASS (function(){var new = 42; new === 42}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    658 PASS function g(new){  }; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    659 PASS (function(){function g(new){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    660 PASS /new/.test(function g(new){  }) threw exception SyntaxError: Expected an identifier but found 'new' instead.
    661 PASS (function(){/new/.test(function g(new){  })}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    662 PASS try{}catch(new){}; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    663 PASS (function(){try{}catch(new){}; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    664 PASS function new(){  }; true threw exception SyntaxError: Unexpected token 'new'.
    665 PASS (function(){function new(){  }; true}); true threw exception SyntaxError: Unexpected token 'new'.
     654PASS var new; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     655PASS (function(){var new; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     656PASS var new = 42; new === 42 threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     657PASS (function(){var new = 42; new === 42}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     658PASS function g(new){  }; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     659PASS (function(){function g(new){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     660PASS /new/.test(function g(new){  }) threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     661PASS (function(){/new/.test(function g(new){  })}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     662PASS try{}catch(new){}; true threw exception SyntaxError: Cannot use the keyword 'new' as a catch variable name..
     663PASS (function(){try{}catch(new){}; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a catch variable name..
     664PASS function new(){  }; true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
     665PASS (function(){function new(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
    666666PASS ({ "new": 42 }.new === 42) is true
    667667PASS (function(){({ "new": 42 }.new === 42)}); true is true
     
    670670PASS ({ get new(){}, set new(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    671671PASS (function(){({ get new(){}, set new(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    672 PASS "use strict";var new; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    673 PASS (function(){"use strict";var new; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    674 PASS "use strict";var new = 42; new === 42 threw exception SyntaxError: Expected an identifier but found 'new' instead.
    675 PASS (function(){"use strict";var new = 42; new === 42}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    676 PASS "use strict";function g(new){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    677 PASS (function(){"use strict";function g(new){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    678 PASS "use strict";/new/.test(function g(new){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'new' instead.
    679 PASS (function(){"use strict";/new/.test(function g(new){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    680 PASS "use strict";try{}catch(new){}; true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    681 PASS (function(){"use strict";try{}catch(new){}; true}); true threw exception SyntaxError: Expected an identifier but found 'new' instead.
    682 PASS "use strict";function new(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'new'.
    683 PASS (function(){"use strict";function new(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'new'.
     672PASS "use strict";var new; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     673PASS (function(){"use strict";var new; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     674PASS "use strict";var new = 42; new === 42 threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     675PASS (function(){"use strict";var new = 42; new === 42}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     676PASS "use strict";function g(new){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     677PASS (function(){"use strict";function g(new){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     678PASS "use strict";/new/.test(function g(new){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     679PASS (function(){"use strict";/new/.test(function g(new){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
     680PASS "use strict";try{}catch(new){}; true threw exception SyntaxError: Cannot use the keyword 'new' as a catch variable name..
     681PASS (function(){"use strict";try{}catch(new){}; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a catch variable name..
     682PASS "use strict";function new(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
     683PASS (function(){"use strict";function new(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
    684684PASS "use strict";({ "new": 42 }.new === 42) is true
    685685PASS (function(){"use strict";({ "new": 42 }.new === 42)}); true is true
     
    688688PASS "use strict";({ get new(){}, set new(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    689689PASS (function(){"use strict";({ get new(){}, set new(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    690 PASS var return; true threw exception SyntaxError: Return statements are only valid inside functions.
    691 PASS (function(){var return; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    692 PASS var return = 42; return === 42 threw exception SyntaxError: Return statements are only valid inside functions.
    693 PASS (function(){var return = 42; return === 42}); true threw exception SyntaxError: Return statements are only valid inside functions.
    694 PASS function g(return){  }; true threw exception SyntaxError: Return statements are only valid inside functions.
    695 PASS (function(){function g(return){  }; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    696 PASS /return/.test(function g(return){  }) threw exception SyntaxError: Return statements are only valid inside functions.
    697 PASS (function(){/return/.test(function g(return){  })}); true threw exception SyntaxError: Return statements are only valid inside functions.
    698 PASS try{}catch(return){}; true threw exception SyntaxError: Return statements are only valid inside functions.
    699 PASS (function(){try{}catch(return){}; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    700 PASS function return(){  }; true threw exception SyntaxError: Return statements are only valid inside functions.
    701 PASS (function(){function return(){  }; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
     690PASS var return; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     691PASS (function(){var return; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     692PASS var return = 42; return === 42 threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     693PASS (function(){var return = 42; return === 42}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     694PASS function g(return){  }; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     695PASS (function(){function g(return){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     696PASS /return/.test(function g(return){  }) threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     697PASS (function(){/return/.test(function g(return){  })}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     698PASS try{}catch(return){}; true threw exception SyntaxError: Cannot use the keyword 'return' as a catch variable name..
     699PASS (function(){try{}catch(return){}; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a catch variable name..
     700PASS function return(){  }; true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
     701PASS (function(){function return(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
    702702PASS ({ "return": 42 }.return === 42) is true
    703703PASS (function(){({ "return": 42 }.return === 42)}); true is true
     
    706706PASS ({ get return(){}, set return(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    707707PASS (function(){({ get return(){}, set return(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    708 PASS "use strict";var return; true threw exception SyntaxError: Return statements are only valid inside functions.
    709 PASS (function(){"use strict";var return; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    710 PASS "use strict";var return = 42; return === 42 threw exception SyntaxError: Return statements are only valid inside functions.
    711 PASS (function(){"use strict";var return = 42; return === 42}); true threw exception SyntaxError: Return statements are only valid inside functions.
    712 PASS "use strict";function g(return){ "use strict"; }; true threw exception SyntaxError: Return statements are only valid inside functions.
    713 PASS (function(){"use strict";function g(return){ "use strict"; }; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    714 PASS "use strict";/return/.test(function g(return){ "use strict"; }) threw exception SyntaxError: Return statements are only valid inside functions.
    715 PASS (function(){"use strict";/return/.test(function g(return){ "use strict"; })}); true threw exception SyntaxError: Return statements are only valid inside functions.
    716 PASS "use strict";try{}catch(return){}; true threw exception SyntaxError: Return statements are only valid inside functions.
    717 PASS (function(){"use strict";try{}catch(return){}; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
    718 PASS "use strict";function return(){ "use strict"; }; true threw exception SyntaxError: Return statements are only valid inside functions.
    719 PASS (function(){"use strict";function return(){ "use strict"; }; true}); true threw exception SyntaxError: Return statements are only valid inside functions.
     708PASS "use strict";var return; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     709PASS (function(){"use strict";var return; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     710PASS "use strict";var return = 42; return === 42 threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     711PASS (function(){"use strict";var return = 42; return === 42}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     712PASS "use strict";function g(return){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     713PASS (function(){"use strict";function g(return){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     714PASS "use strict";/return/.test(function g(return){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     715PASS (function(){"use strict";/return/.test(function g(return){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
     716PASS "use strict";try{}catch(return){}; true threw exception SyntaxError: Cannot use the keyword 'return' as a catch variable name..
     717PASS (function(){"use strict";try{}catch(return){}; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a catch variable name..
     718PASS "use strict";function return(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
     719PASS (function(){"use strict";function return(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
    720720PASS "use strict";({ "return": 42 }.return === 42) is true
    721721PASS (function(){"use strict";({ "return": 42 }.return === 42)}); true is true
     
    724724PASS "use strict";({ get return(){}, set return(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    725725PASS (function(){"use strict";({ get return(){}, set return(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    726 PASS var switch; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    727 PASS (function(){var switch; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    728 PASS var switch = 42; switch === 42 threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    729 PASS (function(){var switch = 42; switch === 42}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    730 PASS function g(switch){  }; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    731 PASS (function(){function g(switch){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    732 PASS /switch/.test(function g(switch){  }) threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    733 PASS (function(){/switch/.test(function g(switch){  })}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    734 PASS try{}catch(switch){}; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    735 PASS (function(){try{}catch(switch){}; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    736 PASS function switch(){  }; true threw exception SyntaxError: Unexpected token 'switch'.
    737 PASS (function(){function switch(){  }; true}); true threw exception SyntaxError: Unexpected token 'switch'.
     726PASS var switch; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     727PASS (function(){var switch; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     728PASS var switch = 42; switch === 42 threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     729PASS (function(){var switch = 42; switch === 42}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     730PASS function g(switch){  }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     731PASS (function(){function g(switch){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     732PASS /switch/.test(function g(switch){  }) threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     733PASS (function(){/switch/.test(function g(switch){  })}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     734PASS try{}catch(switch){}; true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch variable name..
     735PASS (function(){try{}catch(switch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch variable name..
     736PASS function switch(){  }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
     737PASS (function(){function switch(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
    738738PASS ({ "switch": 42 }.switch === 42) is true
    739739PASS (function(){({ "switch": 42 }.switch === 42)}); true is true
     
    742742PASS ({ get switch(){}, set switch(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    743743PASS (function(){({ get switch(){}, set switch(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    744 PASS "use strict";var switch; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    745 PASS (function(){"use strict";var switch; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    746 PASS "use strict";var switch = 42; switch === 42 threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    747 PASS (function(){"use strict";var switch = 42; switch === 42}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    748 PASS "use strict";function g(switch){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    749 PASS (function(){"use strict";function g(switch){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    750 PASS "use strict";/switch/.test(function g(switch){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    751 PASS (function(){"use strict";/switch/.test(function g(switch){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    752 PASS "use strict";try{}catch(switch){}; true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    753 PASS (function(){"use strict";try{}catch(switch){}; true}); true threw exception SyntaxError: Expected an identifier but found 'switch' instead.
    754 PASS "use strict";function switch(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'switch'.
    755 PASS (function(){"use strict";function switch(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'switch'.
     744PASS "use strict";var switch; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     745PASS (function(){"use strict";var switch; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     746PASS "use strict";var switch = 42; switch === 42 threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     747PASS (function(){"use strict";var switch = 42; switch === 42}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     748PASS "use strict";function g(switch){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     749PASS (function(){"use strict";function g(switch){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     750PASS "use strict";/switch/.test(function g(switch){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     751PASS (function(){"use strict";/switch/.test(function g(switch){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
     752PASS "use strict";try{}catch(switch){}; true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch variable name..
     753PASS (function(){"use strict";try{}catch(switch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch variable name..
     754PASS "use strict";function switch(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
     755PASS (function(){"use strict";function switch(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
    756756PASS "use strict";({ "switch": 42 }.switch === 42) is true
    757757PASS (function(){"use strict";({ "switch": 42 }.switch === 42)}); true is true
     
    760760PASS "use strict";({ get switch(){}, set switch(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    761761PASS (function(){"use strict";({ get switch(){}, set switch(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    762 PASS var this; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    763 PASS (function(){var this; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    764 PASS var this = 42; this === 42 threw exception SyntaxError: Expected an identifier but found 'this' instead.
    765 PASS (function(){var this = 42; this === 42}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    766 PASS function g(this){  }; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    767 PASS (function(){function g(this){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    768 PASS /this/.test(function g(this){  }) threw exception SyntaxError: Expected an identifier but found 'this' instead.
    769 PASS (function(){/this/.test(function g(this){  })}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    770 PASS try{}catch(this){}; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    771 PASS (function(){try{}catch(this){}; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    772 PASS function this(){  }; true threw exception SyntaxError: Unexpected token 'this'.
    773 PASS (function(){function this(){  }; true}); true threw exception SyntaxError: Unexpected token 'this'.
     762PASS var this; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     763PASS (function(){var this; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     764PASS var this = 42; this === 42 threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     765PASS (function(){var this = 42; this === 42}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     766PASS function g(this){  }; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     767PASS (function(){function g(this){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     768PASS /this/.test(function g(this){  }) threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     769PASS (function(){/this/.test(function g(this){  })}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     770PASS try{}catch(this){}; true threw exception SyntaxError: Cannot use the keyword 'this' as a catch variable name..
     771PASS (function(){try{}catch(this){}; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a catch variable name..
     772PASS function this(){  }; true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
     773PASS (function(){function this(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
    774774PASS ({ "this": 42 }.this === 42) is true
    775775PASS (function(){({ "this": 42 }.this === 42)}); true is true
     
    778778PASS ({ get this(){}, set this(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    779779PASS (function(){({ get this(){}, set this(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    780 PASS "use strict";var this; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    781 PASS (function(){"use strict";var this; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    782 PASS "use strict";var this = 42; this === 42 threw exception SyntaxError: Expected an identifier but found 'this' instead.
    783 PASS (function(){"use strict";var this = 42; this === 42}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    784 PASS "use strict";function g(this){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    785 PASS (function(){"use strict";function g(this){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    786 PASS "use strict";/this/.test(function g(this){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'this' instead.
    787 PASS (function(){"use strict";/this/.test(function g(this){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    788 PASS "use strict";try{}catch(this){}; true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    789 PASS (function(){"use strict";try{}catch(this){}; true}); true threw exception SyntaxError: Expected an identifier but found 'this' instead.
    790 PASS "use strict";function this(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'this'.
    791 PASS (function(){"use strict";function this(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'this'.
     780PASS "use strict";var this; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     781PASS (function(){"use strict";var this; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     782PASS "use strict";var this = 42; this === 42 threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     783PASS (function(){"use strict";var this = 42; this === 42}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     784PASS "use strict";function g(this){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     785PASS (function(){"use strict";function g(this){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     786PASS "use strict";/this/.test(function g(this){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     787PASS (function(){"use strict";/this/.test(function g(this){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
     788PASS "use strict";try{}catch(this){}; true threw exception SyntaxError: Cannot use the keyword 'this' as a catch variable name..
     789PASS (function(){"use strict";try{}catch(this){}; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a catch variable name..
     790PASS "use strict";function this(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
     791PASS (function(){"use strict";function this(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
    792792PASS "use strict";({ "this": 42 }.this === 42) is true
    793793PASS (function(){"use strict";({ "this": 42 }.this === 42)}); true is true
     
    796796PASS "use strict";({ get this(){}, set this(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    797797PASS (function(){"use strict";({ get this(){}, set this(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    798 PASS var throw; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    799 PASS (function(){var throw; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    800 PASS var throw = 42; throw === 42 threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    801 PASS (function(){var throw = 42; throw === 42}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    802 PASS function g(throw){  }; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    803 PASS (function(){function g(throw){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    804 PASS /throw/.test(function g(throw){  }) threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    805 PASS (function(){/throw/.test(function g(throw){  })}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    806 PASS try{}catch(throw){}; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    807 PASS (function(){try{}catch(throw){}; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    808 PASS function throw(){  }; true threw exception SyntaxError: Unexpected token 'throw'.
    809 PASS (function(){function throw(){  }; true}); true threw exception SyntaxError: Unexpected token 'throw'.
     798PASS var throw; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     799PASS (function(){var throw; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     800PASS var throw = 42; throw === 42 threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     801PASS (function(){var throw = 42; throw === 42}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     802PASS function g(throw){  }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     803PASS (function(){function g(throw){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     804PASS /throw/.test(function g(throw){  }) threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     805PASS (function(){/throw/.test(function g(throw){  })}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     806PASS try{}catch(throw){}; true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch variable name..
     807PASS (function(){try{}catch(throw){}; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch variable name..
     808PASS function throw(){  }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
     809PASS (function(){function throw(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
    810810PASS ({ "throw": 42 }.throw === 42) is true
    811811PASS (function(){({ "throw": 42 }.throw === 42)}); true is true
     
    814814PASS ({ get throw(){}, set throw(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    815815PASS (function(){({ get throw(){}, set throw(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    816 PASS "use strict";var throw; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    817 PASS (function(){"use strict";var throw; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    818 PASS "use strict";var throw = 42; throw === 42 threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    819 PASS (function(){"use strict";var throw = 42; throw === 42}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    820 PASS "use strict";function g(throw){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    821 PASS (function(){"use strict";function g(throw){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    822 PASS "use strict";/throw/.test(function g(throw){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    823 PASS (function(){"use strict";/throw/.test(function g(throw){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    824 PASS "use strict";try{}catch(throw){}; true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    825 PASS (function(){"use strict";try{}catch(throw){}; true}); true threw exception SyntaxError: Expected an identifier but found 'throw' instead.
    826 PASS "use strict";function throw(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'throw'.
    827 PASS (function(){"use strict";function throw(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'throw'.
     816PASS "use strict";var throw; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     817PASS (function(){"use strict";var throw; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     818PASS "use strict";var throw = 42; throw === 42 threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     819PASS (function(){"use strict";var throw = 42; throw === 42}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     820PASS "use strict";function g(throw){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     821PASS (function(){"use strict";function g(throw){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     822PASS "use strict";/throw/.test(function g(throw){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     823PASS (function(){"use strict";/throw/.test(function g(throw){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
     824PASS "use strict";try{}catch(throw){}; true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch variable name..
     825PASS (function(){"use strict";try{}catch(throw){}; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch variable name..
     826PASS "use strict";function throw(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
     827PASS (function(){"use strict";function throw(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
    828828PASS "use strict";({ "throw": 42 }.throw === 42) is true
    829829PASS (function(){"use strict";({ "throw": 42 }.throw === 42)}); true is true
     
    832832PASS "use strict";({ get throw(){}, set throw(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    833833PASS (function(){"use strict";({ get throw(){}, set throw(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    834 PASS var try; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    835 PASS (function(){var try; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    836 PASS var try = 42; try === 42 threw exception SyntaxError: Expected an identifier but found 'try' instead.
    837 PASS (function(){var try = 42; try === 42}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    838 PASS function g(try){  }; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    839 PASS (function(){function g(try){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    840 PASS /try/.test(function g(try){  }) threw exception SyntaxError: Expected an identifier but found 'try' instead.
    841 PASS (function(){/try/.test(function g(try){  })}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    842 PASS try{}catch(try){}; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    843 PASS (function(){try{}catch(try){}; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    844 PASS function try(){  }; true threw exception SyntaxError: Unexpected token 'try'.
    845 PASS (function(){function try(){  }; true}); true threw exception SyntaxError: Unexpected token 'try'.
     834PASS var try; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     835PASS (function(){var try; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     836PASS var try = 42; try === 42 threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     837PASS (function(){var try = 42; try === 42}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     838PASS function g(try){  }; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     839PASS (function(){function g(try){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     840PASS /try/.test(function g(try){  }) threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     841PASS (function(){/try/.test(function g(try){  })}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     842PASS try{}catch(try){}; true threw exception SyntaxError: Cannot use the keyword 'try' as a catch variable name..
     843PASS (function(){try{}catch(try){}; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a catch variable name..
     844PASS function try(){  }; true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
     845PASS (function(){function try(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
    846846PASS ({ "try": 42 }.try === 42) is true
    847847PASS (function(){({ "try": 42 }.try === 42)}); true is true
     
    850850PASS ({ get try(){}, set try(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    851851PASS (function(){({ get try(){}, set try(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    852 PASS "use strict";var try; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    853 PASS (function(){"use strict";var try; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    854 PASS "use strict";var try = 42; try === 42 threw exception SyntaxError: Expected an identifier but found 'try' instead.
    855 PASS (function(){"use strict";var try = 42; try === 42}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    856 PASS "use strict";function g(try){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    857 PASS (function(){"use strict";function g(try){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    858 PASS "use strict";/try/.test(function g(try){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'try' instead.
    859 PASS (function(){"use strict";/try/.test(function g(try){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    860 PASS "use strict";try{}catch(try){}; true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    861 PASS (function(){"use strict";try{}catch(try){}; true}); true threw exception SyntaxError: Expected an identifier but found 'try' instead.
    862 PASS "use strict";function try(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'try'.
    863 PASS (function(){"use strict";function try(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'try'.
     852PASS "use strict";var try; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     853PASS (function(){"use strict";var try; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     854PASS "use strict";var try = 42; try === 42 threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     855PASS (function(){"use strict";var try = 42; try === 42}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     856PASS "use strict";function g(try){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     857PASS (function(){"use strict";function g(try){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     858PASS "use strict";/try/.test(function g(try){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     859PASS (function(){"use strict";/try/.test(function g(try){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
     860PASS "use strict";try{}catch(try){}; true threw exception SyntaxError: Cannot use the keyword 'try' as a catch variable name..
     861PASS (function(){"use strict";try{}catch(try){}; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a catch variable name..
     862PASS "use strict";function try(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
     863PASS (function(){"use strict";function try(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
    864864PASS "use strict";({ "try": 42 }.try === 42) is true
    865865PASS (function(){"use strict";({ "try": 42 }.try === 42)}); true is true
     
    868868PASS "use strict";({ get try(){}, set try(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    869869PASS (function(){"use strict";({ get try(){}, set try(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    870 PASS var typeof; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    871 PASS (function(){var typeof; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    872 PASS var typeof = 42; typeof === 42 threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    873 PASS (function(){var typeof = 42; typeof === 42}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    874 PASS function g(typeof){  }; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    875 PASS (function(){function g(typeof){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    876 PASS /typeof/.test(function g(typeof){  }) threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    877 PASS (function(){/typeof/.test(function g(typeof){  })}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    878 PASS try{}catch(typeof){}; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    879 PASS (function(){try{}catch(typeof){}; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    880 PASS function typeof(){  }; true threw exception SyntaxError: Unexpected token 'typeof'.
    881 PASS (function(){function typeof(){  }; true}); true threw exception SyntaxError: Unexpected token 'typeof'.
     870PASS var typeof; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     871PASS (function(){var typeof; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     872PASS var typeof = 42; typeof === 42 threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     873PASS (function(){var typeof = 42; typeof === 42}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     874PASS function g(typeof){  }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     875PASS (function(){function g(typeof){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     876PASS /typeof/.test(function g(typeof){  }) threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     877PASS (function(){/typeof/.test(function g(typeof){  })}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     878PASS try{}catch(typeof){}; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch variable name..
     879PASS (function(){try{}catch(typeof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch variable name..
     880PASS function typeof(){  }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
     881PASS (function(){function typeof(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
    882882PASS ({ "typeof": 42 }.typeof === 42) is true
    883883PASS (function(){({ "typeof": 42 }.typeof === 42)}); true is true
     
    886886PASS ({ get typeof(){}, set typeof(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    887887PASS (function(){({ get typeof(){}, set typeof(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    888 PASS "use strict";var typeof; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    889 PASS (function(){"use strict";var typeof; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    890 PASS "use strict";var typeof = 42; typeof === 42 threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    891 PASS (function(){"use strict";var typeof = 42; typeof === 42}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    892 PASS "use strict";function g(typeof){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    893 PASS (function(){"use strict";function g(typeof){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    894 PASS "use strict";/typeof/.test(function g(typeof){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    895 PASS (function(){"use strict";/typeof/.test(function g(typeof){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    896 PASS "use strict";try{}catch(typeof){}; true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    897 PASS (function(){"use strict";try{}catch(typeof){}; true}); true threw exception SyntaxError: Expected an identifier but found 'typeof' instead.
    898 PASS "use strict";function typeof(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'typeof'.
    899 PASS (function(){"use strict";function typeof(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'typeof'.
     888PASS "use strict";var typeof; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     889PASS (function(){"use strict";var typeof; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     890PASS "use strict";var typeof = 42; typeof === 42 threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     891PASS (function(){"use strict";var typeof = 42; typeof === 42}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     892PASS "use strict";function g(typeof){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     893PASS (function(){"use strict";function g(typeof){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     894PASS "use strict";/typeof/.test(function g(typeof){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     895PASS (function(){"use strict";/typeof/.test(function g(typeof){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
     896PASS "use strict";try{}catch(typeof){}; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch variable name..
     897PASS (function(){"use strict";try{}catch(typeof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch variable name..
     898PASS "use strict";function typeof(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
     899PASS (function(){"use strict";function typeof(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
    900900PASS "use strict";({ "typeof": 42 }.typeof === 42) is true
    901901PASS (function(){"use strict";({ "typeof": 42 }.typeof === 42)}); true is true
     
    904904PASS "use strict";({ get typeof(){}, set typeof(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    905905PASS (function(){"use strict";({ get typeof(){}, set typeof(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    906 PASS var var; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    907 PASS (function(){var var; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    908 PASS var var = 42; var === 42 threw exception SyntaxError: Expected an identifier but found 'var' instead.
    909 PASS (function(){var var = 42; var === 42}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    910 PASS function g(var){  }; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    911 PASS (function(){function g(var){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    912 PASS /var/.test(function g(var){  }) threw exception SyntaxError: Expected an identifier but found 'var' instead.
    913 PASS (function(){/var/.test(function g(var){  })}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    914 PASS try{}catch(var){}; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    915 PASS (function(){try{}catch(var){}; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    916 PASS function var(){  }; true threw exception SyntaxError: Unexpected token 'var'.
    917 PASS (function(){function var(){  }; true}); true threw exception SyntaxError: Unexpected token 'var'.
     906PASS var var; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     907PASS (function(){var var; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     908PASS var var = 42; var === 42 threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     909PASS (function(){var var = 42; var === 42}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     910PASS function g(var){  }; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     911PASS (function(){function g(var){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     912PASS /var/.test(function g(var){  }) threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     913PASS (function(){/var/.test(function g(var){  })}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     914PASS try{}catch(var){}; true threw exception SyntaxError: Cannot use the keyword 'var' as a catch variable name..
     915PASS (function(){try{}catch(var){}; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a catch variable name..
     916PASS function var(){  }; true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
     917PASS (function(){function var(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
    918918PASS ({ "var": 42 }.var === 42) is true
    919919PASS (function(){({ "var": 42 }.var === 42)}); true is true
     
    922922PASS ({ get var(){}, set var(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    923923PASS (function(){({ get var(){}, set var(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    924 PASS "use strict";var var; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    925 PASS (function(){"use strict";var var; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    926 PASS "use strict";var var = 42; var === 42 threw exception SyntaxError: Expected an identifier but found 'var' instead.
    927 PASS (function(){"use strict";var var = 42; var === 42}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    928 PASS "use strict";function g(var){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    929 PASS (function(){"use strict";function g(var){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    930 PASS "use strict";/var/.test(function g(var){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'var' instead.
    931 PASS (function(){"use strict";/var/.test(function g(var){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    932 PASS "use strict";try{}catch(var){}; true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    933 PASS (function(){"use strict";try{}catch(var){}; true}); true threw exception SyntaxError: Expected an identifier but found 'var' instead.
    934 PASS "use strict";function var(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'var'.
    935 PASS (function(){"use strict";function var(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'var'.
     924PASS "use strict";var var; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     925PASS (function(){"use strict";var var; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     926PASS "use strict";var var = 42; var === 42 threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     927PASS (function(){"use strict";var var = 42; var === 42}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     928PASS "use strict";function g(var){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     929PASS (function(){"use strict";function g(var){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     930PASS "use strict";/var/.test(function g(var){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     931PASS (function(){"use strict";/var/.test(function g(var){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
     932PASS "use strict";try{}catch(var){}; true threw exception SyntaxError: Cannot use the keyword 'var' as a catch variable name..
     933PASS (function(){"use strict";try{}catch(var){}; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a catch variable name..
     934PASS "use strict";function var(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
     935PASS (function(){"use strict";function var(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
    936936PASS "use strict";({ "var": 42 }.var === 42) is true
    937937PASS (function(){"use strict";({ "var": 42 }.var === 42)}); true is true
     
    940940PASS "use strict";({ get var(){}, set var(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    941941PASS (function(){"use strict";({ get var(){}, set var(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    942 PASS var void; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    943 PASS (function(){var void; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    944 PASS var void = 42; void === 42 threw exception SyntaxError: Expected an identifier but found 'void' instead.
    945 PASS (function(){var void = 42; void === 42}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    946 PASS function g(void){  }; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    947 PASS (function(){function g(void){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    948 PASS /void/.test(function g(void){  }) threw exception SyntaxError: Expected an identifier but found 'void' instead.
    949 PASS (function(){/void/.test(function g(void){  })}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    950 PASS try{}catch(void){}; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    951 PASS (function(){try{}catch(void){}; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    952 PASS function void(){  }; true threw exception SyntaxError: Unexpected token 'void'.
    953 PASS (function(){function void(){  }; true}); true threw exception SyntaxError: Unexpected token 'void'.
     942PASS var void; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     943PASS (function(){var void; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     944PASS var void = 42; void === 42 threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     945PASS (function(){var void = 42; void === 42}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     946PASS function g(void){  }; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     947PASS (function(){function g(void){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     948PASS /void/.test(function g(void){  }) threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     949PASS (function(){/void/.test(function g(void){  })}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     950PASS try{}catch(void){}; true threw exception SyntaxError: Cannot use the keyword 'void' as a catch variable name..
     951PASS (function(){try{}catch(void){}; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a catch variable name..
     952PASS function void(){  }; true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
     953PASS (function(){function void(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
    954954PASS ({ "void": 42 }.void === 42) is true
    955955PASS (function(){({ "void": 42 }.void === 42)}); true is true
     
    958958PASS ({ get void(){}, set void(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    959959PASS (function(){({ get void(){}, set void(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    960 PASS "use strict";var void; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    961 PASS (function(){"use strict";var void; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    962 PASS "use strict";var void = 42; void === 42 threw exception SyntaxError: Expected an identifier but found 'void' instead.
    963 PASS (function(){"use strict";var void = 42; void === 42}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    964 PASS "use strict";function g(void){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    965 PASS (function(){"use strict";function g(void){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    966 PASS "use strict";/void/.test(function g(void){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'void' instead.
    967 PASS (function(){"use strict";/void/.test(function g(void){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    968 PASS "use strict";try{}catch(void){}; true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    969 PASS (function(){"use strict";try{}catch(void){}; true}); true threw exception SyntaxError: Expected an identifier but found 'void' instead.
    970 PASS "use strict";function void(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'void'.
    971 PASS (function(){"use strict";function void(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'void'.
     960PASS "use strict";var void; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     961PASS (function(){"use strict";var void; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     962PASS "use strict";var void = 42; void === 42 threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     963PASS (function(){"use strict";var void = 42; void === 42}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     964PASS "use strict";function g(void){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     965PASS (function(){"use strict";function g(void){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     966PASS "use strict";/void/.test(function g(void){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     967PASS (function(){"use strict";/void/.test(function g(void){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
     968PASS "use strict";try{}catch(void){}; true threw exception SyntaxError: Cannot use the keyword 'void' as a catch variable name..
     969PASS (function(){"use strict";try{}catch(void){}; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a catch variable name..
     970PASS "use strict";function void(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
     971PASS (function(){"use strict";function void(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
    972972PASS "use strict";({ "void": 42 }.void === 42) is true
    973973PASS (function(){"use strict";({ "void": 42 }.void === 42)}); true is true
     
    976976PASS "use strict";({ get void(){}, set void(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    977977PASS (function(){"use strict";({ get void(){}, set void(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    978 PASS var while; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    979 PASS (function(){var while; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    980 PASS var while = 42; while === 42 threw exception SyntaxError: Expected an identifier but found 'while' instead.
    981 PASS (function(){var while = 42; while === 42}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    982 PASS function g(while){  }; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    983 PASS (function(){function g(while){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    984 PASS /while/.test(function g(while){  }) threw exception SyntaxError: Expected an identifier but found 'while' instead.
    985 PASS (function(){/while/.test(function g(while){  })}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    986 PASS try{}catch(while){}; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    987 PASS (function(){try{}catch(while){}; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    988 PASS function while(){  }; true threw exception SyntaxError: Unexpected token 'while'.
    989 PASS (function(){function while(){  }; true}); true threw exception SyntaxError: Unexpected token 'while'.
     978PASS var while; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     979PASS (function(){var while; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     980PASS var while = 42; while === 42 threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     981PASS (function(){var while = 42; while === 42}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     982PASS function g(while){  }; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     983PASS (function(){function g(while){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     984PASS /while/.test(function g(while){  }) threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     985PASS (function(){/while/.test(function g(while){  })}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     986PASS try{}catch(while){}; true threw exception SyntaxError: Cannot use the keyword 'while' as a catch variable name..
     987PASS (function(){try{}catch(while){}; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a catch variable name..
     988PASS function while(){  }; true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
     989PASS (function(){function while(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
    990990PASS ({ "while": 42 }.while === 42) is true
    991991PASS (function(){({ "while": 42 }.while === 42)}); true is true
     
    994994PASS ({ get while(){}, set while(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    995995PASS (function(){({ get while(){}, set while(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    996 PASS "use strict";var while; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    997 PASS (function(){"use strict";var while; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    998 PASS "use strict";var while = 42; while === 42 threw exception SyntaxError: Expected an identifier but found 'while' instead.
    999 PASS (function(){"use strict";var while = 42; while === 42}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1000 PASS "use strict";function g(while){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1001 PASS (function(){"use strict";function g(while){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1002 PASS "use strict";/while/.test(function g(while){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1003 PASS (function(){"use strict";/while/.test(function g(while){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1004 PASS "use strict";try{}catch(while){}; true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1005 PASS (function(){"use strict";try{}catch(while){}; true}); true threw exception SyntaxError: Expected an identifier but found 'while' instead.
    1006 PASS "use strict";function while(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'while'.
    1007 PASS (function(){"use strict";function while(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'while'.
     996PASS "use strict";var while; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     997PASS (function(){"use strict";var while; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     998PASS "use strict";var while = 42; while === 42 threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     999PASS (function(){"use strict";var while = 42; while === 42}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     1000PASS "use strict";function g(while){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     1001PASS (function(){"use strict";function g(while){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     1002PASS "use strict";/while/.test(function g(while){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     1003PASS (function(){"use strict";/while/.test(function g(while){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
     1004PASS "use strict";try{}catch(while){}; true threw exception SyntaxError: Cannot use the keyword 'while' as a catch variable name..
     1005PASS (function(){"use strict";try{}catch(while){}; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a catch variable name..
     1006PASS "use strict";function while(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
     1007PASS (function(){"use strict";function while(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
    10081008PASS "use strict";({ "while": 42 }.while === 42) is true
    10091009PASS (function(){"use strict";({ "while": 42 }.while === 42)}); true is true
     
    10121012PASS "use strict";({ get while(){}, set while(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    10131013PASS (function(){"use strict";({ get while(){}, set while(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1014 PASS var with; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1015 PASS (function(){var with; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1016 PASS var with = 42; with === 42 threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1017 PASS (function(){var with = 42; with === 42}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1018 PASS function g(with){  }; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1019 PASS (function(){function g(with){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1020 PASS /with/.test(function g(with){  }) threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1021 PASS (function(){/with/.test(function g(with){  })}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1022 PASS try{}catch(with){}; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1023 PASS (function(){try{}catch(with){}; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1024 PASS function with(){  }; true threw exception SyntaxError: Unexpected token 'with'.
    1025 PASS (function(){function with(){  }; true}); true threw exception SyntaxError: Unexpected token 'with'.
     1014PASS var with; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1015PASS (function(){var with; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1016PASS var with = 42; with === 42 threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1017PASS (function(){var with = 42; with === 42}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1018PASS function g(with){  }; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1019PASS (function(){function g(with){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1020PASS /with/.test(function g(with){  }) threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1021PASS (function(){/with/.test(function g(with){  })}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1022PASS try{}catch(with){}; true threw exception SyntaxError: Cannot use the keyword 'with' as a catch variable name..
     1023PASS (function(){try{}catch(with){}; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a catch variable name..
     1024PASS function with(){  }; true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
     1025PASS (function(){function with(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
    10261026PASS ({ "with": 42 }.with === 42) is true
    10271027PASS (function(){({ "with": 42 }.with === 42)}); true is true
     
    10301030PASS ({ get with(){}, set with(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    10311031PASS (function(){({ get with(){}, set with(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1032 PASS "use strict";var with; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1033 PASS (function(){"use strict";var with; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1034 PASS "use strict";var with = 42; with === 42 threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1035 PASS (function(){"use strict";var with = 42; with === 42}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1036 PASS "use strict";function g(with){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1037 PASS (function(){"use strict";function g(with){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1038 PASS "use strict";/with/.test(function g(with){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1039 PASS (function(){"use strict";/with/.test(function g(with){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1040 PASS "use strict";try{}catch(with){}; true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1041 PASS (function(){"use strict";try{}catch(with){}; true}); true threw exception SyntaxError: Expected an identifier but found 'with' instead.
    1042 PASS "use strict";function with(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'with'.
    1043 PASS (function(){"use strict";function with(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'with'.
     1032PASS "use strict";var with; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1033PASS (function(){"use strict";var with; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1034PASS "use strict";var with = 42; with === 42 threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1035PASS (function(){"use strict";var with = 42; with === 42}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1036PASS "use strict";function g(with){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1037PASS (function(){"use strict";function g(with){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1038PASS "use strict";/with/.test(function g(with){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1039PASS (function(){"use strict";/with/.test(function g(with){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
     1040PASS "use strict";try{}catch(with){}; true threw exception SyntaxError: Cannot use the keyword 'with' as a catch variable name..
     1041PASS (function(){"use strict";try{}catch(with){}; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a catch variable name..
     1042PASS "use strict";function with(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
     1043PASS (function(){"use strict";function with(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
    10441044PASS "use strict";({ "with": 42 }.with === 42) is true
    10451045PASS (function(){"use strict";({ "with": 42 }.with === 42)}); true is true
     
    10481048PASS "use strict";({ get with(){}, set with(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    10491049PASS (function(){"use strict";({ get with(){}, set with(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1050 PASS var class; true threw exception SyntaxError: Use of reserved word 'class'.
    1051 PASS (function(){var class; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1052 PASS var class = 42; class === 42 threw exception SyntaxError: Use of reserved word 'class'.
    1053 PASS (function(){var class = 42; class === 42}); true threw exception SyntaxError: Use of reserved word 'class'.
    1054 PASS function g(class){  }; true threw exception SyntaxError: Use of reserved word 'class'.
    1055 PASS (function(){function g(class){  }; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1056 PASS /class/.test(function g(class){  }) threw exception SyntaxError: Use of reserved word 'class'.
    1057 PASS (function(){/class/.test(function g(class){  })}); true threw exception SyntaxError: Use of reserved word 'class'.
    1058 PASS try{}catch(class){}; true threw exception SyntaxError: Use of reserved word 'class'.
    1059 PASS (function(){try{}catch(class){}; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1060 PASS function class(){  }; true threw exception SyntaxError: Use of reserved word 'class'.
    1061 PASS (function(){function class(){  }; true}); true threw exception SyntaxError: Use of reserved word 'class'.
     1050PASS var class; true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1051PASS (function(){var class; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1052PASS var class = 42; class === 42 threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1053PASS (function(){var class = 42; class === 42}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1054PASS function g(class){  }; true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1055PASS (function(){function g(class){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1056PASS /class/.test(function g(class){  }) threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1057PASS (function(){/class/.test(function g(class){  })}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1058PASS try{}catch(class){}; true threw exception SyntaxError: Cannot use the reserved word 'class' as a catch variable name..
     1059PASS (function(){try{}catch(class){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a catch variable name..
     1060PASS function class(){  }; true threw exception SyntaxError: Cannot use the reserved word 'class' as a function name..
     1061PASS (function(){function class(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a function name..
    10621062PASS ({ "class": 42 }.class === 42) is true
    10631063PASS (function(){({ "class": 42 }.class === 42)}); true is true
     
    10661066PASS ({ get class(){}, set class(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    10671067PASS (function(){({ get class(){}, set class(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1068 PASS "use strict";var class; true threw exception SyntaxError: Use of reserved word 'class'.
    1069 PASS (function(){"use strict";var class; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1070 PASS "use strict";var class = 42; class === 42 threw exception SyntaxError: Use of reserved word 'class'.
    1071 PASS (function(){"use strict";var class = 42; class === 42}); true threw exception SyntaxError: Use of reserved word 'class'.
    1072 PASS "use strict";function g(class){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'class'.
    1073 PASS (function(){"use strict";function g(class){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1074 PASS "use strict";/class/.test(function g(class){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'class'.
    1075 PASS (function(){"use strict";/class/.test(function g(class){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'class'.
    1076 PASS "use strict";try{}catch(class){}; true threw exception SyntaxError: Use of reserved word 'class'.
    1077 PASS (function(){"use strict";try{}catch(class){}; true}); true threw exception SyntaxError: Use of reserved word 'class'.
    1078 PASS "use strict";function class(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'class'.
    1079 PASS (function(){"use strict";function class(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'class'.
     1068PASS "use strict";var class; true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1069PASS (function(){"use strict";var class; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1070PASS "use strict";var class = 42; class === 42 threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1071PASS (function(){"use strict";var class = 42; class === 42}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1072PASS "use strict";function g(class){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1073PASS (function(){"use strict";function g(class){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1074PASS "use strict";/class/.test(function g(class){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1075PASS (function(){"use strict";/class/.test(function g(class){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a variable name..
     1076PASS "use strict";try{}catch(class){}; true threw exception SyntaxError: Cannot use the reserved word 'class' as a catch variable name..
     1077PASS (function(){"use strict";try{}catch(class){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a catch variable name..
     1078PASS "use strict";function class(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'class' as a function name..
     1079PASS (function(){"use strict";function class(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'class' as a function name..
    10801080PASS "use strict";({ "class": 42 }.class === 42) is true
    10811081PASS (function(){"use strict";({ "class": 42 }.class === 42)}); true is true
     
    10841084PASS "use strict";({ get class(){}, set class(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    10851085PASS (function(){"use strict";({ get class(){}, set class(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1086 PASS var const; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1087 PASS (function(){var const; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1088 PASS var const = 42; const === 42 threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1089 PASS (function(){var const = 42; const === 42}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1090 PASS function g(const){  }; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1091 PASS (function(){function g(const){  }; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1092 PASS /const/.test(function g(const){  }) threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1093 PASS (function(){/const/.test(function g(const){  })}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1094 PASS try{}catch(const){}; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1095 PASS (function(){try{}catch(const){}; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1096 PASS function const(){  }; true threw exception SyntaxError: Unexpected token 'const'.
    1097 PASS (function(){function const(){  }; true}); true threw exception SyntaxError: Unexpected token 'const'.
     1086PASS var const; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1087PASS (function(){var const; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1088PASS var const = 42; const === 42 threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1089PASS (function(){var const = 42; const === 42}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1090PASS function g(const){  }; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1091PASS (function(){function g(const){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1092PASS /const/.test(function g(const){  }) threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1093PASS (function(){/const/.test(function g(const){  })}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1094PASS try{}catch(const){}; true threw exception SyntaxError: Cannot use the keyword 'const' as a catch variable name..
     1095PASS (function(){try{}catch(const){}; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a catch variable name..
     1096PASS function const(){  }; true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
     1097PASS (function(){function const(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
    10981098PASS ({ "const": 42 }.const === 42) is true
    10991099PASS (function(){({ "const": 42 }.const === 42)}); true is true
     
    11021102PASS ({ get const(){}, set const(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11031103PASS (function(){({ get const(){}, set const(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1104 PASS "use strict";var const; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1105 PASS (function(){"use strict";var const; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1106 PASS "use strict";var const = 42; const === 42 threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1107 PASS (function(){"use strict";var const = 42; const === 42}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1108 PASS "use strict";function g(const){ "use strict"; }; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1109 PASS (function(){"use strict";function g(const){ "use strict"; }; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1110 PASS "use strict";/const/.test(function g(const){ "use strict"; }) threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1111 PASS (function(){"use strict";/const/.test(function g(const){ "use strict"; })}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1112 PASS "use strict";try{}catch(const){}; true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1113 PASS (function(){"use strict";try{}catch(const){}; true}); true threw exception SyntaxError: Expected an identifier but found 'const' instead.
    1114 PASS "use strict";function const(){ "use strict"; }; true threw exception SyntaxError: Unexpected token 'const'.
    1115 PASS (function(){"use strict";function const(){ "use strict"; }; true}); true threw exception SyntaxError: Unexpected token 'const'.
     1104PASS "use strict";var const; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1105PASS (function(){"use strict";var const; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1106PASS "use strict";var const = 42; const === 42 threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1107PASS (function(){"use strict";var const = 42; const === 42}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1108PASS "use strict";function g(const){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1109PASS (function(){"use strict";function g(const){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1110PASS "use strict";/const/.test(function g(const){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1111PASS (function(){"use strict";/const/.test(function g(const){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
     1112PASS "use strict";try{}catch(const){}; true threw exception SyntaxError: Cannot use the keyword 'const' as a catch variable name..
     1113PASS (function(){"use strict";try{}catch(const){}; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a catch variable name..
     1114PASS "use strict";function const(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
     1115PASS (function(){"use strict";function const(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
    11161116PASS "use strict";({ "const": 42 }.const === 42) is true
    11171117PASS (function(){"use strict";({ "const": 42 }.const === 42)}); true is true
     
    11201120PASS "use strict";({ get const(){}, set const(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11211121PASS (function(){"use strict";({ get const(){}, set const(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1122 PASS var enum; true threw exception SyntaxError: Use of reserved word 'enum'.
    1123 PASS (function(){var enum; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1124 PASS var enum = 42; enum === 42 threw exception SyntaxError: Use of reserved word 'enum'.
    1125 PASS (function(){var enum = 42; enum === 42}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1126 PASS function g(enum){  }; true threw exception SyntaxError: Use of reserved word 'enum'.
    1127 PASS (function(){function g(enum){  }; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1128 PASS /enum/.test(function g(enum){  }) threw exception SyntaxError: Use of reserved word 'enum'.
    1129 PASS (function(){/enum/.test(function g(enum){  })}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1130 PASS try{}catch(enum){}; true threw exception SyntaxError: Use of reserved word 'enum'.
    1131 PASS (function(){try{}catch(enum){}; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1132 PASS function enum(){  }; true threw exception SyntaxError: Use of reserved word 'enum'.
    1133 PASS (function(){function enum(){  }; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
     1122PASS var enum; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1123PASS (function(){var enum; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1124PASS var enum = 42; enum === 42 threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1125PASS (function(){var enum = 42; enum === 42}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1126PASS function g(enum){  }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1127PASS (function(){function g(enum){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1128PASS /enum/.test(function g(enum){  }) threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1129PASS (function(){/enum/.test(function g(enum){  })}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1130PASS try{}catch(enum){}; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch variable name..
     1131PASS (function(){try{}catch(enum){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch variable name..
     1132PASS function enum(){  }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
     1133PASS (function(){function enum(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
    11341134PASS ({ "enum": 42 }.enum === 42) is true
    11351135PASS (function(){({ "enum": 42 }.enum === 42)}); true is true
     
    11381138PASS ({ get enum(){}, set enum(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11391139PASS (function(){({ get enum(){}, set enum(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1140 PASS "use strict";var enum; true threw exception SyntaxError: Use of reserved word 'enum'.
    1141 PASS (function(){"use strict";var enum; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1142 PASS "use strict";var enum = 42; enum === 42 threw exception SyntaxError: Use of reserved word 'enum'.
    1143 PASS (function(){"use strict";var enum = 42; enum === 42}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1144 PASS "use strict";function g(enum){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'enum'.
    1145 PASS (function(){"use strict";function g(enum){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1146 PASS "use strict";/enum/.test(function g(enum){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'enum'.
    1147 PASS (function(){"use strict";/enum/.test(function g(enum){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1148 PASS "use strict";try{}catch(enum){}; true threw exception SyntaxError: Use of reserved word 'enum'.
    1149 PASS (function(){"use strict";try{}catch(enum){}; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
    1150 PASS "use strict";function enum(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'enum'.
    1151 PASS (function(){"use strict";function enum(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'enum'.
     1140PASS "use strict";var enum; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1141PASS (function(){"use strict";var enum; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1142PASS "use strict";var enum = 42; enum === 42 threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1143PASS (function(){"use strict";var enum = 42; enum === 42}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1144PASS "use strict";function g(enum){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1145PASS (function(){"use strict";function g(enum){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1146PASS "use strict";/enum/.test(function g(enum){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1147PASS (function(){"use strict";/enum/.test(function g(enum){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
     1148PASS "use strict";try{}catch(enum){}; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch variable name..
     1149PASS (function(){"use strict";try{}catch(enum){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch variable name..
     1150PASS "use strict";function enum(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
     1151PASS (function(){"use strict";function enum(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
    11521152PASS "use strict";({ "enum": 42 }.enum === 42) is true
    11531153PASS (function(){"use strict";({ "enum": 42 }.enum === 42)}); true is true
     
    11561156PASS "use strict";({ get enum(){}, set enum(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11571157PASS (function(){"use strict";({ get enum(){}, set enum(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1158 PASS var export; true threw exception SyntaxError: Use of reserved word 'export'.
    1159 PASS (function(){var export; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1160 PASS var export = 42; export === 42 threw exception SyntaxError: Use of reserved word 'export'.
    1161 PASS (function(){var export = 42; export === 42}); true threw exception SyntaxError: Use of reserved word 'export'.
    1162 PASS function g(export){  }; true threw exception SyntaxError: Use of reserved word 'export'.
    1163 PASS (function(){function g(export){  }; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1164 PASS /export/.test(function g(export){  }) threw exception SyntaxError: Use of reserved word 'export'.
    1165 PASS (function(){/export/.test(function g(export){  })}); true threw exception SyntaxError: Use of reserved word 'export'.
    1166 PASS try{}catch(export){}; true threw exception SyntaxError: Use of reserved word 'export'.
    1167 PASS (function(){try{}catch(export){}; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1168 PASS function export(){  }; true threw exception SyntaxError: Use of reserved word 'export'.
    1169 PASS (function(){function export(){  }; true}); true threw exception SyntaxError: Use of reserved word 'export'.
     1158PASS var export; true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1159PASS (function(){var export; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1160PASS var export = 42; export === 42 threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1161PASS (function(){var export = 42; export === 42}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1162PASS function g(export){  }; true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1163PASS (function(){function g(export){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1164PASS /export/.test(function g(export){  }) threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1165PASS (function(){/export/.test(function g(export){  })}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1166PASS try{}catch(export){}; true threw exception SyntaxError: Cannot use the reserved word 'export' as a catch variable name..
     1167PASS (function(){try{}catch(export){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a catch variable name..
     1168PASS function export(){  }; true threw exception SyntaxError: Cannot use the reserved word 'export' as a function name..
     1169PASS (function(){function export(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a function name..
    11701170PASS ({ "export": 42 }.export === 42) is true
    11711171PASS (function(){({ "export": 42 }.export === 42)}); true is true
     
    11741174PASS ({ get export(){}, set export(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11751175PASS (function(){({ get export(){}, set export(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1176 PASS "use strict";var export; true threw exception SyntaxError: Use of reserved word 'export'.
    1177 PASS (function(){"use strict";var export; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1178 PASS "use strict";var export = 42; export === 42 threw exception SyntaxError: Use of reserved word 'export'.
    1179 PASS (function(){"use strict";var export = 42; export === 42}); true threw exception SyntaxError: Use of reserved word 'export'.
    1180 PASS "use strict";function g(export){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'export'.
    1181 PASS (function(){"use strict";function g(export){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1182 PASS "use strict";/export/.test(function g(export){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'export'.
    1183 PASS (function(){"use strict";/export/.test(function g(export){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'export'.
    1184 PASS "use strict";try{}catch(export){}; true threw exception SyntaxError: Use of reserved word 'export'.
    1185 PASS (function(){"use strict";try{}catch(export){}; true}); true threw exception SyntaxError: Use of reserved word 'export'.
    1186 PASS "use strict";function export(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'export'.
    1187 PASS (function(){"use strict";function export(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'export'.
     1176PASS "use strict";var export; true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1177PASS (function(){"use strict";var export; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1178PASS "use strict";var export = 42; export === 42 threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1179PASS (function(){"use strict";var export = 42; export === 42}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1180PASS "use strict";function g(export){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1181PASS (function(){"use strict";function g(export){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1182PASS "use strict";/export/.test(function g(export){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1183PASS (function(){"use strict";/export/.test(function g(export){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a variable name..
     1184PASS "use strict";try{}catch(export){}; true threw exception SyntaxError: Cannot use the reserved word 'export' as a catch variable name..
     1185PASS (function(){"use strict";try{}catch(export){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a catch variable name..
     1186PASS "use strict";function export(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'export' as a function name..
     1187PASS (function(){"use strict";function export(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'export' as a function name..
    11881188PASS "use strict";({ "export": 42 }.export === 42) is true
    11891189PASS (function(){"use strict";({ "export": 42 }.export === 42)}); true is true
     
    11921192PASS "use strict";({ get export(){}, set export(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    11931193PASS (function(){"use strict";({ get export(){}, set export(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1194 PASS var extends; true threw exception SyntaxError: Use of reserved word 'extends'.
    1195 PASS (function(){var extends; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1196 PASS var extends = 42; extends === 42 threw exception SyntaxError: Use of reserved word 'extends'.
    1197 PASS (function(){var extends = 42; extends === 42}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1198 PASS function g(extends){  }; true threw exception SyntaxError: Use of reserved word 'extends'.
    1199 PASS (function(){function g(extends){  }; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1200 PASS /extends/.test(function g(extends){  }) threw exception SyntaxError: Use of reserved word 'extends'.
    1201 PASS (function(){/extends/.test(function g(extends){  })}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1202 PASS try{}catch(extends){}; true threw exception SyntaxError: Use of reserved word 'extends'.
    1203 PASS (function(){try{}catch(extends){}; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1204 PASS function extends(){  }; true threw exception SyntaxError: Use of reserved word 'extends'.
    1205 PASS (function(){function extends(){  }; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
     1194PASS var extends; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1195PASS (function(){var extends; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1196PASS var extends = 42; extends === 42 threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1197PASS (function(){var extends = 42; extends === 42}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1198PASS function g(extends){  }; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1199PASS (function(){function g(extends){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1200PASS /extends/.test(function g(extends){  }) threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1201PASS (function(){/extends/.test(function g(extends){  })}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1202PASS try{}catch(extends){}; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a catch variable name..
     1203PASS (function(){try{}catch(extends){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a catch variable name..
     1204PASS function extends(){  }; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a function name..
     1205PASS (function(){function extends(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a function name..
    12061206PASS ({ "extends": 42 }.extends === 42) is true
    12071207PASS (function(){({ "extends": 42 }.extends === 42)}); true is true
     
    12101210PASS ({ get extends(){}, set extends(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    12111211PASS (function(){({ get extends(){}, set extends(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1212 PASS "use strict";var extends; true threw exception SyntaxError: Use of reserved word 'extends'.
    1213 PASS (function(){"use strict";var extends; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1214 PASS "use strict";var extends = 42; extends === 42 threw exception SyntaxError: Use of reserved word 'extends'.
    1215 PASS (function(){"use strict";var extends = 42; extends === 42}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1216 PASS "use strict";function g(extends){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'extends'.
    1217 PASS (function(){"use strict";function g(extends){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1218 PASS "use strict";/extends/.test(function g(extends){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'extends'.
    1219 PASS (function(){"use strict";/extends/.test(function g(extends){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1220 PASS "use strict";try{}catch(extends){}; true threw exception SyntaxError: Use of reserved word 'extends'.
    1221 PASS (function(){"use strict";try{}catch(extends){}; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
    1222 PASS "use strict";function extends(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'extends'.
    1223 PASS (function(){"use strict";function extends(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'extends'.
     1212PASS "use strict";var extends; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1213PASS (function(){"use strict";var extends; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1214PASS "use strict";var extends = 42; extends === 42 threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1215PASS (function(){"use strict";var extends = 42; extends === 42}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1216PASS "use strict";function g(extends){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1217PASS (function(){"use strict";function g(extends){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1218PASS "use strict";/extends/.test(function g(extends){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1219PASS (function(){"use strict";/extends/.test(function g(extends){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a variable name..
     1220PASS "use strict";try{}catch(extends){}; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a catch variable name..
     1221PASS (function(){"use strict";try{}catch(extends){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a catch variable name..
     1222PASS "use strict";function extends(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'extends' as a function name..
     1223PASS (function(){"use strict";function extends(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'extends' as a function name..
    12241224PASS "use strict";({ "extends": 42 }.extends === 42) is true
    12251225PASS (function(){"use strict";({ "extends": 42 }.extends === 42)}); true is true
     
    12281228PASS "use strict";({ get extends(){}, set extends(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    12291229PASS (function(){"use strict";({ get extends(){}, set extends(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1230 PASS var import; true threw exception SyntaxError: Use of reserved word 'import'.
    1231 PASS (function(){var import; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1232 PASS var import = 42; import === 42 threw exception SyntaxError: Use of reserved word 'import'.
    1233 PASS (function(){var import = 42; import === 42}); true threw exception SyntaxError: Use of reserved word 'import'.
    1234 PASS function g(import){  }; true threw exception SyntaxError: Use of reserved word 'import'.
    1235 PASS (function(){function g(import){  }; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1236 PASS /import/.test(function g(import){  }) threw exception SyntaxError: Use of reserved word 'import'.
    1237 PASS (function(){/import/.test(function g(import){  })}); true threw exception SyntaxError: Use of reserved word 'import'.
    1238 PASS try{}catch(import){}; true threw exception SyntaxError: Use of reserved word 'import'.
    1239 PASS (function(){try{}catch(import){}; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1240 PASS function import(){  }; true threw exception SyntaxError: Use of reserved word 'import'.
    1241 PASS (function(){function import(){  }; true}); true threw exception SyntaxError: Use of reserved word 'import'.
     1230PASS var import; true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1231PASS (function(){var import; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1232PASS var import = 42; import === 42 threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1233PASS (function(){var import = 42; import === 42}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1234PASS function g(import){  }; true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1235PASS (function(){function g(import){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1236PASS /import/.test(function g(import){  }) threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1237PASS (function(){/import/.test(function g(import){  })}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1238PASS try{}catch(import){}; true threw exception SyntaxError: Cannot use the reserved word 'import' as a catch variable name..
     1239PASS (function(){try{}catch(import){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a catch variable name..
     1240PASS function import(){  }; true threw exception SyntaxError: Cannot use the reserved word 'import' as a function name..
     1241PASS (function(){function import(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a function name..
    12421242PASS ({ "import": 42 }.import === 42) is true
    12431243PASS (function(){({ "import": 42 }.import === 42)}); true is true
     
    12461246PASS ({ get import(){}, set import(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    12471247PASS (function(){({ get import(){}, set import(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1248 PASS "use strict";var import; true threw exception SyntaxError: Use of reserved word 'import'.
    1249 PASS (function(){"use strict";var import; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1250 PASS "use strict";var import = 42; import === 42 threw exception SyntaxError: Use of reserved word 'import'.
    1251 PASS (function(){"use strict";var import = 42; import === 42}); true threw exception SyntaxError: Use of reserved word 'import'.
    1252 PASS "use strict";function g(import){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'import'.
    1253 PASS (function(){"use strict";function g(import){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1254 PASS "use strict";/import/.test(function g(import){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'import'.
    1255 PASS (function(){"use strict";/import/.test(function g(import){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'import'.
    1256 PASS "use strict";try{}catch(import){}; true threw exception SyntaxError: Use of reserved word 'import'.
    1257 PASS (function(){"use strict";try{}catch(import){}; true}); true threw exception SyntaxError: Use of reserved word 'import'.
    1258 PASS "use strict";function import(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'import'.
    1259 PASS (function(){"use strict";function import(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'import'.
     1248PASS "use strict";var import; true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1249PASS (function(){"use strict";var import; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1250PASS "use strict";var import = 42; import === 42 threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1251PASS (function(){"use strict";var import = 42; import === 42}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1252PASS "use strict";function g(import){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1253PASS (function(){"use strict";function g(import){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1254PASS "use strict";/import/.test(function g(import){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1255PASS (function(){"use strict";/import/.test(function g(import){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a variable name..
     1256PASS "use strict";try{}catch(import){}; true threw exception SyntaxError: Cannot use the reserved word 'import' as a catch variable name..
     1257PASS (function(){"use strict";try{}catch(import){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a catch variable name..
     1258PASS "use strict";function import(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'import' as a function name..
     1259PASS (function(){"use strict";function import(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'import' as a function name..
    12601260PASS "use strict";({ "import": 42 }.import === 42) is true
    12611261PASS (function(){"use strict";({ "import": 42 }.import === 42)}); true is true
     
    12641264PASS "use strict";({ get import(){}, set import(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    12651265PASS (function(){"use strict";({ get import(){}, set import(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1266 PASS var super; true threw exception SyntaxError: Use of reserved word 'super'.
    1267 PASS (function(){var super; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1268 PASS var super = 42; super === 42 threw exception SyntaxError: Use of reserved word 'super'.
    1269 PASS (function(){var super = 42; super === 42}); true threw exception SyntaxError: Use of reserved word 'super'.
    1270 PASS function g(super){  }; true threw exception SyntaxError: Use of reserved word 'super'.
    1271 PASS (function(){function g(super){  }; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1272 PASS /super/.test(function g(super){  }) threw exception SyntaxError: Use of reserved word 'super'.
    1273 PASS (function(){/super/.test(function g(super){  })}); true threw exception SyntaxError: Use of reserved word 'super'.
    1274 PASS try{}catch(super){}; true threw exception SyntaxError: Use of reserved word 'super'.
    1275 PASS (function(){try{}catch(super){}; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1276 PASS function super(){  }; true threw exception SyntaxError: Use of reserved word 'super'.
    1277 PASS (function(){function super(){  }; true}); true threw exception SyntaxError: Use of reserved word 'super'.
     1266PASS var super; true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1267PASS (function(){var super; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1268PASS var super = 42; super === 42 threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1269PASS (function(){var super = 42; super === 42}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1270PASS function g(super){  }; true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1271PASS (function(){function g(super){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1272PASS /super/.test(function g(super){  }) threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1273PASS (function(){/super/.test(function g(super){  })}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1274PASS try{}catch(super){}; true threw exception SyntaxError: Cannot use the reserved word 'super' as a catch variable name..
     1275PASS (function(){try{}catch(super){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a catch variable name..
     1276PASS function super(){  }; true threw exception SyntaxError: Cannot use the reserved word 'super' as a function name..
     1277PASS (function(){function super(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a function name..
    12781278PASS ({ "super": 42 }.super === 42) is true
    12791279PASS (function(){({ "super": 42 }.super === 42)}); true is true
     
    12821282PASS ({ get super(){}, set super(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    12831283PASS (function(){({ get super(){}, set super(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1284 PASS "use strict";var super; true threw exception SyntaxError: Use of reserved word 'super'.
    1285 PASS (function(){"use strict";var super; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1286 PASS "use strict";var super = 42; super === 42 threw exception SyntaxError: Use of reserved word 'super'.
    1287 PASS (function(){"use strict";var super = 42; super === 42}); true threw exception SyntaxError: Use of reserved word 'super'.
    1288 PASS "use strict";function g(super){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'super'.
    1289 PASS (function(){"use strict";function g(super){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1290 PASS "use strict";/super/.test(function g(super){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'super'.
    1291 PASS (function(){"use strict";/super/.test(function g(super){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'super'.
    1292 PASS "use strict";try{}catch(super){}; true threw exception SyntaxError: Use of reserved word 'super'.
    1293 PASS (function(){"use strict";try{}catch(super){}; true}); true threw exception SyntaxError: Use of reserved word 'super'.
    1294 PASS "use strict";function super(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'super'.
    1295 PASS (function(){"use strict";function super(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'super'.
     1284PASS "use strict";var super; true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1285PASS (function(){"use strict";var super; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1286PASS "use strict";var super = 42; super === 42 threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1287PASS (function(){"use strict";var super = 42; super === 42}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1288PASS "use strict";function g(super){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1289PASS (function(){"use strict";function g(super){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1290PASS "use strict";/super/.test(function g(super){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1291PASS (function(){"use strict";/super/.test(function g(super){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a variable name..
     1292PASS "use strict";try{}catch(super){}; true threw exception SyntaxError: Cannot use the reserved word 'super' as a catch variable name..
     1293PASS (function(){"use strict";try{}catch(super){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a catch variable name..
     1294PASS "use strict";function super(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'super' as a function name..
     1295PASS (function(){"use strict";function super(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'super' as a function name..
    12961296PASS "use strict";({ "super": 42 }.super === 42) is true
    12971297PASS (function(){"use strict";({ "super": 42 }.super === 42)}); true is true
     
    13181318PASS ({ get implements(){}, set implements(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    13191319PASS (function(){({ get implements(){}, set implements(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1320 PASS "use strict";var implements; true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1321 PASS (function(){"use strict";var implements; true}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1322 PASS "use strict";var implements = 42; implements === 42 threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1323 PASS (function(){"use strict";var implements = 42; implements === 42}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1324 PASS "use strict";function g(implements){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1325 PASS (function(){"use strict";function g(implements){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1326 PASS "use strict";/implements/.test(function g(implements){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1327 PASS (function(){"use strict";/implements/.test(function g(implements){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1328 PASS "use strict";try{}catch(implements){}; true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1329 PASS (function(){"use strict";try{}catch(implements){}; true}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1330 PASS "use strict";function implements(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
    1331 PASS (function(){"use strict";function implements(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'implements' in strict mode.
     1320PASS "use strict";var implements; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1321PASS (function(){"use strict";var implements; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1322PASS "use strict";var implements = 42; implements === 42 threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1323PASS (function(){"use strict";var implements = 42; implements === 42}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1324PASS "use strict";function g(implements){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1325PASS (function(){"use strict";function g(implements){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1326PASS "use strict";/implements/.test(function g(implements){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1327PASS (function(){"use strict";/implements/.test(function g(implements){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
     1328PASS "use strict";try{}catch(implements){}; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a catch variable name in strict mode..
     1329PASS (function(){"use strict";try{}catch(implements){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a catch variable name in strict mode..
     1330PASS "use strict";function implements(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a function name in strict mode..
     1331PASS (function(){"use strict";function implements(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a function name in strict mode..
    13321332PASS "use strict";({ "implements": 42 }.implements === 42) is true
    13331333PASS (function(){"use strict";({ "implements": 42 }.implements === 42)}); true is true
     
    13541354PASS ({ get let(){}, set let(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    13551355PASS (function(){({ get let(){}, set let(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1356 PASS "use strict";var let; true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1357 PASS (function(){"use strict";var let; true}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1358 PASS "use strict";var let = 42; let === 42 threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1359 PASS (function(){"use strict";var let = 42; let === 42}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1360 PASS "use strict";function g(let){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1361 PASS (function(){"use strict";function g(let){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1362 PASS "use strict";/let/.test(function g(let){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1363 PASS (function(){"use strict";/let/.test(function g(let){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1364 PASS "use strict";try{}catch(let){}; true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1365 PASS (function(){"use strict";try{}catch(let){}; true}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1366 PASS "use strict";function let(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
    1367 PASS (function(){"use strict";function let(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'let' in strict mode.
     1356PASS "use strict";var let; true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1357PASS (function(){"use strict";var let; true}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1358PASS "use strict";var let = 42; let === 42 threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1359PASS (function(){"use strict";var let = 42; let === 42}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1360PASS "use strict";function g(let){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1361PASS (function(){"use strict";function g(let){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1362PASS "use strict";/let/.test(function g(let){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1363PASS (function(){"use strict";/let/.test(function g(let){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a variable name in strict mode..
     1364PASS "use strict";try{}catch(let){}; true threw exception SyntaxError: Cannot use the reserved word 'let' as a catch variable name in strict mode..
     1365PASS (function(){"use strict";try{}catch(let){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a catch variable name in strict mode..
     1366PASS "use strict";function let(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'let' as a function name in strict mode..
     1367PASS (function(){"use strict";function let(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'let' as a function name in strict mode..
    13681368PASS "use strict";({ "let": 42 }.let === 42) is true
    13691369PASS (function(){"use strict";({ "let": 42 }.let === 42)}); true is true
     
    13901390PASS ({ get private(){}, set private(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    13911391PASS (function(){({ get private(){}, set private(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1392 PASS "use strict";var private; true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1393 PASS (function(){"use strict";var private; true}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1394 PASS "use strict";var private = 42; private === 42 threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1395 PASS (function(){"use strict";var private = 42; private === 42}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1396 PASS "use strict";function g(private){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1397 PASS (function(){"use strict";function g(private){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1398 PASS "use strict";/private/.test(function g(private){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1399 PASS (function(){"use strict";/private/.test(function g(private){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1400 PASS "use strict";try{}catch(private){}; true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1401 PASS (function(){"use strict";try{}catch(private){}; true}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1402 PASS "use strict";function private(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
    1403 PASS (function(){"use strict";function private(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'private' in strict mode.
     1392PASS "use strict";var private; true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1393PASS (function(){"use strict";var private; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1394PASS "use strict";var private = 42; private === 42 threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1395PASS (function(){"use strict";var private = 42; private === 42}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1396PASS "use strict";function g(private){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1397PASS (function(){"use strict";function g(private){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1398PASS "use strict";/private/.test(function g(private){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1399PASS (function(){"use strict";/private/.test(function g(private){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
     1400PASS "use strict";try{}catch(private){}; true threw exception SyntaxError: Cannot use the reserved word 'private' as a catch variable name in strict mode..
     1401PASS (function(){"use strict";try{}catch(private){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a catch variable name in strict mode..
     1402PASS "use strict";function private(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'private' as a function name in strict mode..
     1403PASS (function(){"use strict";function private(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a function name in strict mode..
    14041404PASS "use strict";({ "private": 42 }.private === 42) is true
    14051405PASS (function(){"use strict";({ "private": 42 }.private === 42)}); true is true
     
    14261426PASS ({ get public(){}, set public(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    14271427PASS (function(){({ get public(){}, set public(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1428 PASS "use strict";var public; true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1429 PASS (function(){"use strict";var public; true}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1430 PASS "use strict";var public = 42; public === 42 threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1431 PASS (function(){"use strict";var public = 42; public === 42}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1432 PASS "use strict";function g(public){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1433 PASS (function(){"use strict";function g(public){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1434 PASS "use strict";/public/.test(function g(public){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1435 PASS (function(){"use strict";/public/.test(function g(public){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1436 PASS "use strict";try{}catch(public){}; true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1437 PASS (function(){"use strict";try{}catch(public){}; true}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1438 PASS "use strict";function public(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
    1439 PASS (function(){"use strict";function public(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'public' in strict mode.
     1428PASS "use strict";var public; true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1429PASS (function(){"use strict";var public; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1430PASS "use strict";var public = 42; public === 42 threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1431PASS (function(){"use strict";var public = 42; public === 42}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1432PASS "use strict";function g(public){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1433PASS (function(){"use strict";function g(public){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1434PASS "use strict";/public/.test(function g(public){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1435PASS (function(){"use strict";/public/.test(function g(public){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
     1436PASS "use strict";try{}catch(public){}; true threw exception SyntaxError: Cannot use the reserved word 'public' as a catch variable name in strict mode..
     1437PASS (function(){"use strict";try{}catch(public){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a catch variable name in strict mode..
     1438PASS "use strict";function public(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'public' as a function name in strict mode..
     1439PASS (function(){"use strict";function public(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a function name in strict mode..
    14401440PASS "use strict";({ "public": 42 }.public === 42) is true
    14411441PASS (function(){"use strict";({ "public": 42 }.public === 42)}); true is true
     
    14621462PASS ({ get yield(){}, set yield(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    14631463PASS (function(){({ get yield(){}, set yield(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1464 PASS "use strict";var yield; true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1465 PASS (function(){"use strict";var yield; true}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1466 PASS "use strict";var yield = 42; yield === 42 threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1467 PASS (function(){"use strict";var yield = 42; yield === 42}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1468 PASS "use strict";function g(yield){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1469 PASS (function(){"use strict";function g(yield){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1470 PASS "use strict";/yield/.test(function g(yield){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1471 PASS (function(){"use strict";/yield/.test(function g(yield){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1472 PASS "use strict";try{}catch(yield){}; true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1473 PASS (function(){"use strict";try{}catch(yield){}; true}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1474 PASS "use strict";function yield(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
    1475 PASS (function(){"use strict";function yield(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'yield' in strict mode.
     1464PASS "use strict";var yield; true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1465PASS (function(){"use strict";var yield; true}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1466PASS "use strict";var yield = 42; yield === 42 threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1467PASS (function(){"use strict";var yield = 42; yield === 42}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1468PASS "use strict";function g(yield){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1469PASS (function(){"use strict";function g(yield){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1470PASS "use strict";/yield/.test(function g(yield){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1471PASS (function(){"use strict";/yield/.test(function g(yield){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a variable name in strict mode..
     1472PASS "use strict";try{}catch(yield){}; true threw exception SyntaxError: Cannot use the reserved word 'yield' as a catch variable name in strict mode..
     1473PASS (function(){"use strict";try{}catch(yield){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a catch variable name in strict mode..
     1474PASS "use strict";function yield(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'yield' as a function name in strict mode..
     1475PASS (function(){"use strict";function yield(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'yield' as a function name in strict mode..
    14761476PASS "use strict";({ "yield": 42 }.yield === 42) is true
    14771477PASS (function(){"use strict";({ "yield": 42 }.yield === 42)}); true is true
     
    14981498PASS ({ get interface(){}, set interface(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    14991499PASS (function(){({ get interface(){}, set interface(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1500 PASS "use strict";var interface; true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1501 PASS (function(){"use strict";var interface; true}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1502 PASS "use strict";var interface = 42; interface === 42 threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1503 PASS (function(){"use strict";var interface = 42; interface === 42}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1504 PASS "use strict";function g(interface){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1505 PASS (function(){"use strict";function g(interface){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1506 PASS "use strict";/interface/.test(function g(interface){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1507 PASS (function(){"use strict";/interface/.test(function g(interface){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1508 PASS "use strict";try{}catch(interface){}; true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1509 PASS (function(){"use strict";try{}catch(interface){}; true}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1510 PASS "use strict";function interface(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
    1511 PASS (function(){"use strict";function interface(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'interface' in strict mode.
     1500PASS "use strict";var interface; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1501PASS (function(){"use strict";var interface; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1502PASS "use strict";var interface = 42; interface === 42 threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1503PASS (function(){"use strict";var interface = 42; interface === 42}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1504PASS "use strict";function g(interface){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1505PASS (function(){"use strict";function g(interface){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1506PASS "use strict";/interface/.test(function g(interface){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1507PASS (function(){"use strict";/interface/.test(function g(interface){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
     1508PASS "use strict";try{}catch(interface){}; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a catch variable name in strict mode..
     1509PASS (function(){"use strict";try{}catch(interface){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a catch variable name in strict mode..
     1510PASS "use strict";function interface(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a function name in strict mode..
     1511PASS (function(){"use strict";function interface(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a function name in strict mode..
    15121512PASS "use strict";({ "interface": 42 }.interface === 42) is true
    15131513PASS (function(){"use strict";({ "interface": 42 }.interface === 42)}); true is true
     
    15341534PASS ({ get package(){}, set package(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    15351535PASS (function(){({ get package(){}, set package(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1536 PASS "use strict";var package; true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1537 PASS (function(){"use strict";var package; true}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1538 PASS "use strict";var package = 42; package === 42 threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1539 PASS (function(){"use strict";var package = 42; package === 42}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1540 PASS "use strict";function g(package){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1541 PASS (function(){"use strict";function g(package){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1542 PASS "use strict";/package/.test(function g(package){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1543 PASS (function(){"use strict";/package/.test(function g(package){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1544 PASS "use strict";try{}catch(package){}; true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1545 PASS (function(){"use strict";try{}catch(package){}; true}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1546 PASS "use strict";function package(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
    1547 PASS (function(){"use strict";function package(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'package' in strict mode.
     1536PASS "use strict";var package; true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1537PASS (function(){"use strict";var package; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1538PASS "use strict";var package = 42; package === 42 threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1539PASS (function(){"use strict";var package = 42; package === 42}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1540PASS "use strict";function g(package){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1541PASS (function(){"use strict";function g(package){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1542PASS "use strict";/package/.test(function g(package){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1543PASS (function(){"use strict";/package/.test(function g(package){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
     1544PASS "use strict";try{}catch(package){}; true threw exception SyntaxError: Cannot use the reserved word 'package' as a catch variable name in strict mode..
     1545PASS (function(){"use strict";try{}catch(package){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a catch variable name in strict mode..
     1546PASS "use strict";function package(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'package' as a function name in strict mode..
     1547PASS (function(){"use strict";function package(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a function name in strict mode..
    15481548PASS "use strict";({ "package": 42 }.package === 42) is true
    15491549PASS (function(){"use strict";({ "package": 42 }.package === 42)}); true is true
     
    15701570PASS ({ get protected(){}, set protected(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    15711571PASS (function(){({ get protected(){}, set protected(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1572 PASS "use strict";var protected; true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1573 PASS (function(){"use strict";var protected; true}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1574 PASS "use strict";var protected = 42; protected === 42 threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1575 PASS (function(){"use strict";var protected = 42; protected === 42}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1576 PASS "use strict";function g(protected){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1577 PASS (function(){"use strict";function g(protected){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1578 PASS "use strict";/protected/.test(function g(protected){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1579 PASS (function(){"use strict";/protected/.test(function g(protected){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1580 PASS "use strict";try{}catch(protected){}; true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1581 PASS (function(){"use strict";try{}catch(protected){}; true}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1582 PASS "use strict";function protected(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
    1583 PASS (function(){"use strict";function protected(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'protected' in strict mode.
     1572PASS "use strict";var protected; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1573PASS (function(){"use strict";var protected; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1574PASS "use strict";var protected = 42; protected === 42 threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1575PASS (function(){"use strict";var protected = 42; protected === 42}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1576PASS "use strict";function g(protected){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1577PASS (function(){"use strict";function g(protected){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1578PASS "use strict";/protected/.test(function g(protected){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1579PASS (function(){"use strict";/protected/.test(function g(protected){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
     1580PASS "use strict";try{}catch(protected){}; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a catch variable name in strict mode..
     1581PASS (function(){"use strict";try{}catch(protected){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a catch variable name in strict mode..
     1582PASS "use strict";function protected(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a function name in strict mode..
     1583PASS (function(){"use strict";function protected(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a function name in strict mode..
    15841584PASS "use strict";({ "protected": 42 }.protected === 42) is true
    15851585PASS (function(){"use strict";({ "protected": 42 }.protected === 42)}); true is true
     
    16061606PASS ({ get static(){}, set static(){}, parsedOkay: 42 }.parsedOkay === 42) is true
    16071607PASS (function(){({ get static(){}, set static(){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
    1608 PASS "use strict";var static; true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1609 PASS (function(){"use strict";var static; true}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1610 PASS "use strict";var static = 42; static === 42 threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1611 PASS (function(){"use strict";var static = 42; static === 42}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1612 PASS "use strict";function g(static){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1613 PASS (function(){"use strict";function g(static){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1614 PASS "use strict";/static/.test(function g(static){ "use strict"; }) threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1615 PASS (function(){"use strict";/static/.test(function g(static){ "use strict"; })}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1616 PASS "use strict";try{}catch(static){}; true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1617 PASS (function(){"use strict";try{}catch(static){}; true}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1618 PASS "use strict";function static(){ "use strict"; }; true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
    1619 PASS (function(){"use strict";function static(){ "use strict"; }; true}); true threw exception SyntaxError: Use of reserved word 'static' in strict mode.
     1608PASS "use strict";var static; true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1609PASS (function(){"use strict";var static; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1610PASS "use strict";var static = 42; static === 42 threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1611PASS (function(){"use strict";var static = 42; static === 42}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1612PASS "use strict";function g(static){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1613PASS (function(){"use strict";function g(static){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1614PASS "use strict";/static/.test(function g(static){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1615PASS (function(){"use strict";/static/.test(function g(static){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
     1616PASS "use strict";try{}catch(static){}; true threw exception SyntaxError: Cannot use the reserved word 'static' as a catch variable name in strict mode..
     1617PASS (function(){"use strict";try{}catch(static){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a catch variable name in strict mode..
     1618PASS "use strict";function static(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'static' as a function name in strict mode..
     1619PASS (function(){"use strict";function static(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a function name in strict mode..
    16201620PASS "use strict";({ "static": 42 }.static === 42) is true
    16211621PASS (function(){"use strict";({ "static": 42 }.static === 42)}); true is true
  • trunk/LayoutTests/js/function-constructor-error-expected.txt

    r110398 r158014  
    44
    55
    6 PASS Function('(i + (j)') threw exception SyntaxError: Expected token ')'.
    7 PASS Function('return (i + (j)') threw exception SyntaxError: Expected token ')'.
     6PASS Function('(i + (j)') threw exception SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression..
     7PASS Function('return (i + (j)') threw exception SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression..
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/js/function-declaration-expected.txt

    r89257 r158014  
    66PASS eval('function f(){return true;}') is undefined.
    77PASS eval('function f(){return true;};f')() is true
    8 PASS eval('function(){return false;}')() threw exception SyntaxError: Unexpected token '('.
     8PASS eval('function(){return false;}')() threw exception SyntaxError: Function statements must have a name..
    99PASS successfullyParsed is true
    1010
  • trunk/LayoutTests/js/function-toString-object-literals-expected.txt

    r89257 r158014  
    2020PASS compileAndSerialize('a = { get x() { } }') is 'a = { get x() { } }'
    2121PASS compileAndSerialize('a = { set x(y) { } }') is 'a = { set x(y) { } }'
    22 PASS compileAndSerialize('a = { --1: null }') threw exception SyntaxError: Unexpected token '--'.
    23 PASS compileAndSerialize('a = { -NaN: null }') threw exception SyntaxError: Unexpected token '-'.
    24 PASS compileAndSerialize('a = { -0: null }') threw exception SyntaxError: Unexpected token '-'.
    25 PASS compileAndSerialize('a = { -0.0: null }') threw exception SyntaxError: Unexpected token '-'.
    26 PASS compileAndSerialize('a = { -Infinity: null }') threw exception SyntaxError: Unexpected token '-'.
     22PASS compileAndSerialize('a = { --1: null }') threw exception SyntaxError: Unexpected token '--'. Expected a property name..
     23PASS compileAndSerialize('a = { -NaN: null }') threw exception SyntaxError: Unexpected token '-'. Expected a property name..
     24PASS compileAndSerialize('a = { -0: null }') threw exception SyntaxError: Unexpected token '-'. Expected a property name..
     25PASS compileAndSerialize('a = { -0.0: null }') threw exception SyntaxError: Unexpected token '-'. Expected a property name..
     26PASS compileAndSerialize('a = { -Infinity: null }') threw exception SyntaxError: Unexpected token '-'. Expected a property name..
    2727PASS successfullyParsed is true
    2828
  • trunk/LayoutTests/js/function-toString-parentheses-expected.txt

    r89257 r158014  
    217217PASS compileAndSerialize('(a = b) + c') is '(a = b) + c'
    218218PASS compileAndSerialize('a = (b + c)') is 'a = (b + c)'
    219 PASS compileAndSerialize('a + b = c') threw exception SyntaxError: Unexpected token '='.
     219PASS compileAndSerialize('a + b = c') threw exception SyntaxError: Left hand sign of operator '=' must be a reference..
    220220PASS compileAndSerialize('(a + b) = c') is '(a + b) = c'
    221221PASS compileAndSerialize('a + (b = c)') is 'a + (b = c)'
     
    229229PASS compileAndSerialize('(a *= b) + c') is '(a *= b) + c'
    230230PASS compileAndSerialize('a *= (b + c)') is 'a *= (b + c)'
    231 PASS compileAndSerialize('a + b *= c') threw exception SyntaxError: Unexpected token '*='.
     231PASS compileAndSerialize('a + b *= c') threw exception SyntaxError: Left hand sign of operator '*=' must be a reference..
    232232PASS compileAndSerialize('(a + b) *= c') is '(a + b) *= c'
    233233PASS compileAndSerialize('a + (b *= c)') is 'a + (b *= c)'
     
    241241PASS compileAndSerialize('(a /= b) + c') is '(a /= b) + c'
    242242PASS compileAndSerialize('a /= (b + c)') is 'a /= (b + c)'
    243 PASS compileAndSerialize('a + b /= c') threw exception SyntaxError: Unexpected token '/='.
     243PASS compileAndSerialize('a + b /= c') threw exception SyntaxError: Left hand sign of operator '/=' must be a reference..
    244244PASS compileAndSerialize('(a + b) /= c') is '(a + b) /= c'
    245245PASS compileAndSerialize('a + (b /= c)') is 'a + (b /= c)'
     
    253253PASS compileAndSerialize('(a %= b) + c') is '(a %= b) + c'
    254254PASS compileAndSerialize('a %= (b + c)') is 'a %= (b + c)'
    255 PASS compileAndSerialize('a + b %= c') threw exception SyntaxError: Unexpected token '%='.
     255PASS compileAndSerialize('a + b %= c') threw exception SyntaxError: Left hand sign of operator '%=' must be a reference..
    256256PASS compileAndSerialize('(a + b) %= c') is '(a + b) %= c'
    257257PASS compileAndSerialize('a + (b %= c)') is 'a + (b %= c)'
     
    265265PASS compileAndSerialize('(a += b) + c') is '(a += b) + c'
    266266PASS compileAndSerialize('a += (b + c)') is 'a += (b + c)'
    267 PASS compileAndSerialize('a + b += c') threw exception SyntaxError: Unexpected token '+='.
     267PASS compileAndSerialize('a + b += c') threw exception SyntaxError: Left hand sign of operator '+=' must be a reference..
    268268PASS compileAndSerialize('(a + b) += c') is '(a + b) += c'
    269269PASS compileAndSerialize('a + (b += c)') is 'a + (b += c)'
     
    277277PASS compileAndSerialize('(a -= b) + c') is '(a -= b) + c'
    278278PASS compileAndSerialize('a -= (b + c)') is 'a -= (b + c)'
    279 PASS compileAndSerialize('a + b -= c') threw exception SyntaxError: Unexpected token '-='.
     279PASS compileAndSerialize('a + b -= c') threw exception SyntaxError: Left hand sign of operator '-=' must be a reference..
    280280PASS compileAndSerialize('(a + b) -= c') is '(a + b) -= c'
    281281PASS compileAndSerialize('a + (b -= c)') is 'a + (b -= c)'
     
    289289PASS compileAndSerialize('(a <<= b) + c') is '(a <<= b) + c'
    290290PASS compileAndSerialize('a <<= (b + c)') is 'a <<= (b + c)'
    291 PASS compileAndSerialize('a + b <<= c') threw exception SyntaxError: Unexpected token '<<='.
     291PASS compileAndSerialize('a + b <<= c') threw exception SyntaxError: Left hand sign of operator '<<=' must be a reference..
    292292PASS compileAndSerialize('(a + b) <<= c') is '(a + b) <<= c'
    293293PASS compileAndSerialize('a + (b <<= c)') is 'a + (b <<= c)'
     
    301301PASS compileAndSerialize('(a >>= b) + c') is '(a >>= b) + c'
    302302PASS compileAndSerialize('a >>= (b + c)') is 'a >>= (b + c)'
    303 PASS compileAndSerialize('a + b >>= c') threw exception SyntaxError: Unexpected token '>>='.
     303PASS compileAndSerialize('a + b >>= c') threw exception SyntaxError: Left hand sign of operator '>>=' must be a reference..
    304304PASS compileAndSerialize('(a + b) >>= c') is '(a + b) >>= c'
    305305PASS compileAndSerialize('a + (b >>= c)') is 'a + (b >>= c)'
     
    313313PASS compileAndSerialize('(a >>>= b) + c') is '(a >>>= b) + c'
    314314PASS compileAndSerialize('a >>>= (b + c)') is 'a >>>= (b + c)'
    315 PASS compileAndSerialize('a + b >>>= c') threw exception SyntaxError: Unexpected token '>>>='.
     315PASS compileAndSerialize('a + b >>>= c') threw exception SyntaxError: Left hand sign of operator '>>>=' must be a reference..
    316316PASS compileAndSerialize('(a + b) >>>= c') is '(a + b) >>>= c'
    317317PASS compileAndSerialize('a + (b >>>= c)') is 'a + (b >>>= c)'
     
    325325PASS compileAndSerialize('(a &= b) + c') is '(a &= b) + c'
    326326PASS compileAndSerialize('a &= (b + c)') is 'a &= (b + c)'
    327 PASS compileAndSerialize('a + b &= c') threw exception SyntaxError: Unexpected token '&='.
     327PASS compileAndSerialize('a + b &= c') threw exception SyntaxError: Left hand sign of operator '&=' must be a reference..
    328328PASS compileAndSerialize('(a + b) &= c') is '(a + b) &= c'
    329329PASS compileAndSerialize('a + (b &= c)') is 'a + (b &= c)'
     
    337337PASS compileAndSerialize('(a ^= b) + c') is '(a ^= b) + c'
    338338PASS compileAndSerialize('a ^= (b + c)') is 'a ^= (b + c)'
    339 PASS compileAndSerialize('a + b ^= c') threw exception SyntaxError: Unexpected token '^='.
     339PASS compileAndSerialize('a + b ^= c') threw exception SyntaxError: Left hand sign of operator '^=' must be a reference..
    340340PASS compileAndSerialize('(a + b) ^= c') is '(a + b) ^= c'
    341341PASS compileAndSerialize('a + (b ^= c)') is 'a + (b ^= c)'
     
    349349PASS compileAndSerialize('(a |= b) + c') is '(a |= b) + c'
    350350PASS compileAndSerialize('a |= (b + c)') is 'a |= (b + c)'
    351 PASS compileAndSerialize('a + b |= c') threw exception SyntaxError: Unexpected token '|='.
     351PASS compileAndSerialize('a + b |= c') threw exception SyntaxError: Left hand sign of operator '|=' must be a reference..
    352352PASS compileAndSerialize('(a + b) |= c') is '(a + b) |= c'
    353353PASS compileAndSerialize('a + (b |= c)') is 'a + (b |= c)'
  • trunk/LayoutTests/js/js-continue-break-restrictions-expected.txt

    r89257 r158014  
    55
    66PASS L:{true;break L;false} is true
    7 PASS if (0) { L:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement.
    8 PASS if (0) { L:{ continue L; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    9 PASS if (0) { L:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    10 PASS if (0) { switch (1) { case 1: continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     7PASS if (0) { L:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement..
     8PASS if (0) { L:{ continue L; } } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
     9PASS if (0) { L:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement..
     10PASS if (0) { switch (1) { case 1: continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement..
    1111PASS A:L:{true;break L;false} is true
    12 PASS if (0) { A:L:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement.
    13 PASS if (0) { A:L:{ continue L; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    14 PASS if (0) { A:L:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     12PASS if (0) { A:L:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement..
     13PASS if (0) { A:L:{ continue L; } } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
     14PASS if (0) { A:L:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement..
    1515PASS L:A:{true;break L;false} is true
    16 PASS if (0) { L:A:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement.
    17 PASS if (0) { L:A:{ continue L; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
    18 PASS if (0) { L:A:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     16PASS if (0) { L:A:{ break; } } threw exception SyntaxError: 'break' is only valid inside a switch or loop statement..
     17PASS if (0) { L:A:{ continue L; } } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
     18PASS if (0) { L:A:{ continue; } } threw exception SyntaxError: 'continue' is only valid inside a loop statement..
    1919PASS if(0){ L:for(;;) continue L; } is undefined.
    2020PASS if(0){ L:A:for(;;) continue L; } is undefined.
    2121PASS if(0){ A:L:for(;;) continue L; } is undefined.
    22 PASS if(0){ A:for(;;) L:continue L; } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     22PASS if(0){ A:for(;;) L:continue L; } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
    2323PASS if(0){ L:for(;;) A:continue L; } is undefined.
    2424PASS if(0){ L:do continue L; while(0); } is undefined.
    2525PASS if(0){ L:A:do continue L; while(0); } is undefined.
    2626PASS if(0){ A:L:do continue L; while(0);} is undefined.
    27 PASS if(0){ A:do L:continue L; while(0); } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     27PASS if(0){ A:do L:continue L; while(0); } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
    2828PASS if(0){ L:do A:continue L; while(0); } is undefined.
    2929PASS if(0){ L:while(0) continue L; } is undefined.
    3030PASS if(0){ L:A:while(0) continue L; } is undefined.
    3131PASS if(0){ A:L:while(0) continue L; } is undefined.
    32 PASS if(0){ A:while(0) L:continue L; } threw exception SyntaxError: 'continue' is only valid inside a loop statement.
     32PASS if(0){ A:while(0) L:continue L; } threw exception SyntaxError: Cannot continue to the label 'L' as it is not targeting a loop..
    3333PASS if(0){ L:while(0) A:continue L; } is undefined.
    3434PASS successfullyParsed is true
  • trunk/LayoutTests/js/kde/garbage-n-expected.txt

    r98407 r158014  
    1 CONSOLE MESSAGE: line 1: SyntaxError: Expected an identifier but found 'code' instead
     1CONSOLE MESSAGE: line 1: SyntaxError: Unexpected identifier 'code'
    22KDE JS Test
    33
  • trunk/LayoutTests/js/kde/parse-expected.txt

    r148849 r158014  
    88PASS function test() { while(0) continue; } lab: 1 is 1
    99PASS function test() { return lab;} lab: 1 is 1
    10 PASS function test() { while(0) break lab; } lab: 1 threw exception SyntaxError: Label 'lab' is not defined.
    11 PASS function test() { while(0) continue lab; } lab: 1 threw exception SyntaxError: Label 'lab' is not defined.
     10PASS function test() { while(0) break lab; } lab: 1 threw exception SyntaxError: Cannot use the undeclared label 'lab'..
     11PASS function test() { while(0) continue lab; } lab: 1 threw exception SyntaxError: Cannot use the undeclared label 'lab'..
    1212PASS function test() { return } lab: 1 is 1
    1313PASS function test() { while(0) break } lab: 1 is 1
    1414PASS function test() { while(0) continue } lab: 1 is 1
    1515PASS function test() { return 0 } lab: 1 is 1
    16 PASS function test() { while(0) break lab } lab: 1 threw exception SyntaxError: Label 'lab' is not defined.
    17 PASS function test() { while(0) continue lab } lab: 1 threw exception SyntaxError: Label 'lab' is not defined.
     16PASS function test() { while(0) break lab } lab: 1 threw exception SyntaxError: Cannot use the undeclared label 'lab'..
     17PASS function test() { while(0) continue lab } lab: 1 threw exception SyntaxError: Cannot use the undeclared label 'lab'..
    1818PASS var éĀʯΈᢨ = 101; éĀʯΈᢨ; is 101
    1919PASS var f÷; threw exception SyntaxError: Invalid character '\u0247'.
  • trunk/LayoutTests/js/no-semi-insertion-at-end-of-script-expected.txt

    r89257 r158014  
    44
    55
    6 PASS if (0) threw exception SyntaxError: Unexpected EOF.
    7 PASS eval('if (0)') threw exception SyntaxError: Unexpected EOF.
     6PASS if (0) threw exception SyntaxError: Unexpected end of script.
     7PASS eval('if (0)') threw exception SyntaxError: Unexpected end of script.
    88PASS successfullyParsed is true
    99
  • trunk/LayoutTests/js/object-literal-syntax-expected.txt

    r89257 r158014  
    44
    55
    6 PASS ({a:1, get a(){}}) threw exception SyntaxError: Unexpected token '}'.
    7 PASS ({a:1, set a(){}}) threw exception SyntaxError: Unexpected token '}'.
    8 PASS ({get a(){}, a:1}) threw exception SyntaxError: Unexpected token '}'.
    9 PASS ({set a(){}, a:1}) threw exception SyntaxError: Unexpected token '}'.
    10 PASS ({get a(){}, get a(){}}) threw exception SyntaxError: Unexpected token '}'.
    11 PASS ({set a(){}, set a(){}}) threw exception SyntaxError: Unexpected token '}'.
    12 PASS ({set a(){}, get a(){}, set a(){}}) threw exception SyntaxError: Unexpected token '}'.
    13 PASS (function(){({a:1, get a(){}})}) threw exception SyntaxError: Unexpected token '}'.
    14 PASS (function(){({a:1, set a(){}})}) threw exception SyntaxError: Unexpected token '}'.
    15 PASS (function(){({get a(){}, a:1})}) threw exception SyntaxError: Unexpected token '}'.
    16 PASS (function(){({set a(){}, a:1})}) threw exception SyntaxError: Unexpected token '}'.
    17 PASS (function(){({get a(){}, get a(){}})}) threw exception SyntaxError: Unexpected token '}'.
    18 PASS (function(){({set a(){}, set a(){}})}) threw exception SyntaxError: Unexpected token '}'.
    19 PASS (function(){({set a(){}, get a(){}, set a(){}})}) threw exception SyntaxError: Unexpected token '}'.
     6PASS ({a:1, get a(){}}) threw exception SyntaxError: Attempted to redefine property 'a'..
     7PASS ({a:1, set a(){}}) threw exception SyntaxError: Attempted to redefine property 'a'..
     8PASS ({get a(){}, a:1}) threw exception SyntaxError: Attempted to redefine property 'a'..
     9PASS ({set a(){}, a:1}) threw exception SyntaxError: Attempted to redefine property 'a'..
     10PASS ({get a(){}, get a(){}}) threw exception SyntaxError: Attempted to redefine property 'a'..
     11PASS ({set a(){}, set a(){}}) threw exception SyntaxError: Attempted to redefine property 'a'..
     12PASS ({set a(){}, get a(){}, set a(){}}) threw exception SyntaxError: Attempted to redefine property 'a'..
     13PASS (function(){({a:1, get a(){}})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     14PASS (function(){({a:1, set a(){}})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     15PASS (function(){({get a(){}, a:1})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     16PASS (function(){({set a(){}, a:1})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     17PASS (function(){({get a(){}, get a(){}})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     18PASS (function(){({set a(){}, set a(){}})}) threw exception SyntaxError: Attempted to redefine property 'a'..
     19PASS (function(){({set a(){}, get a(){}, set a(){}})}) threw exception SyntaxError: Attempted to redefine property 'a'..
    2020PASS ({a:1, a:1, a:1}), true is true
    2121PASS ({get a(){}, set a(){}}), true is true
  • trunk/LayoutTests/js/parser-xml-close-comment-expected.txt

    r89257 r158014  
    44
    55
    6 PASS 'should be a syntax error' --> threw exception SyntaxError: Unexpected EOF.
    7 PASS /**/ 1 --> threw exception SyntaxError: Unexpected EOF.
    8 PASS 1 /**/ --> threw exception SyntaxError: Unexpected EOF.
     6PASS 'should be a syntax error' --> threw exception SyntaxError: Unexpected end of script.
     7PASS /**/ 1 --> threw exception SyntaxError: Unexpected end of script.
     8PASS 1 /**/ --> threw exception SyntaxError: Unexpected end of script.
    99PASS 1/*
    1010*/--> threw exception SyntaxError: Unexpected token '>'.
  • trunk/LayoutTests/js/regexp-compile-crash-expected.txt

    r89257 r158014  
    55
    66PASS !!/\)[;s]+/ is true
    7 PASS /[/ threw exception SyntaxError: Unexpected token '/'.
    8 PASS /[a/ threw exception SyntaxError: Unexpected token '/'.
    9 PASS /[-/ threw exception SyntaxError: Unexpected token '/'.
     7PASS /[/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
     8PASS /[a/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
     9PASS /[-/ threw exception SyntaxError: Unexpected token '/'. Invalid regular expression..
    1010PASS !!/(a)/ is true
    1111PASS !!/(a){1,3}/ is true
  • trunk/LayoutTests/js/script-tests/function-constructor-error.js

    r110398 r158014  
    33);
    44
    5 shouldThrow("Function('(i + (j)')", '"SyntaxError: Expected token \')\'"');
    6 shouldThrow("Function('return (i + (j)')", '"SyntaxError: Expected token \')\'"');
     5shouldThrow("Function('(i + (j)')", "\"SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression.\"");
     6shouldThrow("Function('return (i + (j)')", "\"SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression.\"");
  • trunk/LayoutTests/js/script-tests/reserved-words-strict.js

    r113352 r158014  
    55        return false;
    66    } catch (e) {
    7         var expectedError = "Use of reserved word '" + word + "' in strict mode";
     7        var expectedError = "Cannot use the reserved word '" + word + "' as a variable name in strict mode.";
    88        if (expectedError == e.message)
    99                return true;
    10         else
     10        else {
     11            debug(e.message);
    1112                return false;
     13        }
    1214    }
    1315}
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T2-expected.txt

    r89257 r158014  
    11S7.3_A3.1_T2
    22
    3 PASS SyntaxError: Expected an identifier but found 'line' instead
     3PASS SyntaxError: Unexpected identifier 'line'
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Expected an identifier but found 'comment' instead
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected identifier 'comment'
    22S7.3_A3.1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T2-expected.txt

    r89257 r158014  
    11S7.3_A3.2_T2
    22
    3 PASS SyntaxError: Expected an identifier but found 'line' instead
     3PASS SyntaxError: Unexpected identifier 'line'
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.2_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found 'comment' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected identifier 'comment'
    22S7.3_A3.2_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.3_T2-expected.txt

    r89257 r158014  
    11S7.3_A3.3_T2
    22
    3 PASS SyntaxError: Expected an identifier but found 'line' instead
     3PASS SyntaxError: Unexpected identifier 'line'
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A3.4_T2-expected.txt

    r89257 r158014  
    11S7.3_A3.4_T2
    22
    3 PASS SyntaxError: Expected an identifier but found 'line' instead
     3PASS SyntaxError: Unexpected identifier 'line'
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.4_A4_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.4_A4_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '=' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected an identifier as the target for a break statement.
    22S7.5.2_A1.1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.10-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected '(' to start a for-loop header.
    22S7.5.2_A1.10
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.12-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected '(' to start a 'if' condition.
    22S7.5.2_A1.12
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.13-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token 'in'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'in'
    22S7.5.2_A1.13
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.14-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token 'instanceof'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'instanceof'
    22S7.5.2_A1.14
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.16-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 76: SyntaxError: Return statements are only valid inside functions.
    22S7.5.2_A1.16
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.17-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected '(' to start a subject of a 'switch'.
    22S7.5.2_A1.17
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '}'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'case'. Expected a closing '}' at the end of a block statement.
    22S7.5.2_A1.2
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.20-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '{'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected a block statement as body of a try statement.
    22S7.5.2_A1.20
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.22-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '=' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected a parameter pattern or a ')' in parameter list.
    22S7.5.2_A1.22
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.24-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected '(' to start a while loop condition.
    22S7.5.2_A1.24
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.25-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected '(' to start a subject of a 'with' statement.
    22S7.5.2_A1.25
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token 'catch'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'catch'
    22S7.5.2_A1.3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '=' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected an identifier as the target for a continue statement.
    22S7.5.2_A1.4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '}'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'default'. Expected a closing '}' at the end of a block statement.
    22S7.5.2_A1.5
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token 'else'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'else'
    22S7.5.2_A1.8
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.2_Keywords/S7.5.2_A1.9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token 'finally'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected keyword 'finally'
    22S7.5.2_A1.9
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.10-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'export'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'export'
    22S7.5.3_A1.10
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.11-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'extends'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'extends'
    22S7.5.3_A1.11
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.16-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'import'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'import'
    22S7.5.3_A1.16
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.27-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'super'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'super'
    22S7.5.3_A1.27
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'class'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'class'
    22S7.5.3_A1.5
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '=' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Expected an identifier name in const declaration.
    22S7.5.3_A1.6
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '='. Debugger keyword must be followed by a ';'.
    22S7.5.3_A1.7
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Use of reserved word 'enum'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected use of reserved word 'enum'
    22S7.5.3_A1.9
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.2_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A1.2_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A1.3_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A1.3_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A1.5_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A1.5_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.2_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A2.2_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A2.3_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A2.3_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A2.5_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '/'. Invalid regular expression.
    22S7.8.5_A2.5_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '\u0067' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected identifier '\u0067'. Expected ';' after var declaration.
    22S7.8.5_A3.1_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '\u0069' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected identifier '\u0069'. Expected ';' after var declaration.
    22S7.8.5_A3.1_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A3.1_T9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found '\u006D' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected identifier '\u006D'. Expected ';' after var declaration.
    22S7.8.5_A3.1_T9
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected number '2'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected number '2'. Parse error.
    22S7.9.2_A1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token ';'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.
    22S7.9.2_A1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/7.9.2_Examples/S7.9.2_A1_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token 'else'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected keyword 'else'
    22S7.9.2_A1_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token ';'. Expected ')' to end a compound expression.
    22S7.9_A10_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A10_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected number '2'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected number '2'. Parse error.
    22S7.9_A10_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token 'else'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'else'
    22S7.9_A11_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A11_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token 'else'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected keyword 'else'
    22S7.9_A11_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected number '1'
     1CONSOLE MESSAGE: line 79: SyntaxError: Cannot have a newline after 'throw'.
    22S7.9_A4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ';'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.
    22S7.9_A6.2_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Expected token ';'
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.
    22S7.9_A6.2_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Expected token ';'
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.
    22S7.9_A6.2_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.2_T9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ';'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.
    22S7.9_A6.2_T9
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T4-expected.txt

    r156920 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Expected either 'in' or 'of' in enumeration syntax
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected token ')'. Expected either 'in' or 'of' in enumeration syntax.
    22S7.9_A6.3_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T5-expected.txt

    r156920 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected either 'in' or 'of' in enumeration syntax
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected keyword 'false'. Expected either 'in' or 'of' in enumeration syntax.
    22S7.9_A6.3_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T6-expected.txt

    r156920 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Expected either 'in' or 'of' in enumeration syntax
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected keyword 'false'. Expected either 'in' or 'of' in enumeration syntax.
    22S7.9_A6.3_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.3_T7-expected.txt

    r156920 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Expected either 'in' or 'of' in enumeration syntax
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected keyword 'false'. Expected either 'in' or 'of' in enumeration syntax.
    22S7.9_A6.3_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A6.4_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token ';'. Expected ')' to end a for-loop header.
    22S7.9_A6.4_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'. Expected a statement as the body of a while loop.
    22S7.9_A9_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 81: SyntaxError: Unexpected token '}'. Expected a statement as the body of a while loop.
    22S7.9_A9_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/07_Lexical_Conventions/7.9_Automatic_Semicolon_Insertion/S7.9_A9_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Expected token 'while'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token ';'. Expected 'while' to end a do-while loop.
    22S7.9_A9_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/08_Types/8.2_The_Null_Type/S8.2_A2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected an identifier but found 'null' instead
     1CONSOLE MESSAGE: line 76: SyntaxError: Cannot use the keyword 'null' as a variable name.
    22S8.2_A2
    33
  • trunk/LayoutTests/sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A13_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected string ''
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected string literal ''. Expected ';' after var declaration.
    22S8.4_A13_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/08_Types/8.4_The_String_Type/S8.4_A14_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected string ""
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected string literal "". Expected ';' after var declaration.
    22S8.4_A14_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T1-expected.txt

    r89257 r158014  
    11S11.3.1_A1.1_T1
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T2-expected.txt

    r89257 r158014  
    11S11.3.1_A1.1_T2
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T3-expected.txt

    r89257 r158014  
    11S11.3.1_A1.1_T3
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.1_Postfix_Increment_Operator/S11.3.1_A1.1_T4-expected.txt

    r89257 r158014  
    11S11.3.1_A1.1_T4
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T1-expected.txt

    r89257 r158014  
    11S11.3.2_A1.1_T1
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T2-expected.txt

    r89257 r158014  
    11S11.3.2_A1.1_T2
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T3-expected.txt

    r89257 r158014  
    11S11.3.2_A1.1_T3
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/11_Expressions/11.3_PostfixExpressions/11.3.2_Postfix_Decrement_Operator/S11.3.2_A1.1_T4-expected.txt

    r89257 r158014  
    11S11.3.2_A1.1_T4
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A2_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 85: SyntaxError: Expected token '}'
     1CONSOLE MESSAGE: line 85: SyntaxError: Unexpected keyword 'default'. Expected '}' to end a body of a 'switch'.
    22S12.11_A2_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '{'. Expected '(' to start a subject of a 'switch'.
    22S12.11_A3_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Expected token '{'
     1CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token ';'. Expected '{' to start a body of a 'switch'.
    22S12.11_A3_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.11_The_switch_Statement/S12.11_A3_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token '}'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected identifier 'result'. Expected '}' to end a body of a 'switch'.
    22S12.11_A3_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token '{'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '}'. Expected a block statement as body of a try statement.
    22S12.14_A16_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T10-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found ')' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token ')'. Expected identifier name as catch target.
    22S12.14_A16_T10
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T11-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token 'catch'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected keyword 'catch'
    22S12.14_A16_T11
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T12-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 82: SyntaxError: Unexpected token '}'. Try statements must have at least a catch or finally block.
    22S12.14_A16_T12
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T13-expected.txt

    r90535 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected string "22"
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected string literal "22". Expected identifier name as catch target.
    22S12.14_A16_T13
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T14-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Expected token '{'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token '('. Expected a block statement as body of a try statement.
    22S12.14_A16_T14
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T15-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token '{'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '('. Expected block statement for finally body.
    22S12.14_A16_T15
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token 'catch'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected keyword 'catch'
    22S12.14_A16_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token 'finally'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected keyword 'finally'
    22S12.14_A16_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '{'. Expected '(' to start a 'catch' target.
    22S12.14_A16_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found ')' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token ')'. Expected identifier name as catch target.
    22S12.14_A16_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token 'catch'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'catch'
    22S12.14_A16_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found ')' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token ')'. Expected identifier name as catch target.
    22S12.14_A16_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found ')' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token ')'. Expected identifier name as catch target.
    22S12.14_A16_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 77: SyntaxError: Unexpected token 'catch'
     1CONSOLE MESSAGE: line 77: SyntaxError: Unexpected keyword 'catch'
    22S12.14_A16_T9
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T1-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'. Expected a ':' following the property name '__func'.
    22S12.1_A4_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T2-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'. Expected a ':' following the property name 'x'.
    22S12.1_A4_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '+='
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '+='. Expected ';' after var declaration.
    22S12.2_A8_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '|'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '|'. Expected ';' after var declaration.
    22S12.2_A8_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '&&'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '&&'. Expected ';' after var declaration.
    22S12.2_A8_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '++'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '++'. Expected ';' after var declaration.
    22S12.2_A8_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected an identifier but found '--' instead
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '--'. Expected a parameter pattern or a ')' in parameter list.
    22S12.2_A8_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '*'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '*'. Expected ';' after var declaration.
    22S12.2_A8_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '>>'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '>>'. Expected ';' after var declaration.
    22S12.2_A8_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.2_Variable_Statement/S12.2_A8_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token 'in'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected keyword 'in'. Expected ';' after var declaration.
    22S12.2_A8_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.4_Expression_Statement/S12.4_A1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Function statements must have a name.
    22S12.4_A1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A11-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token ':'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '}'. Expected ':' after property name.
    22S12.5_A11
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'true'. Expected '(' to start a 'if' condition.
    22S12.5_A6_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A6_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'false'. Expected '(' to start a 'if' condition.
    22S12.5_A6_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.5_The_if_Statement/S12.5_A9_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Function statements must have a name.
    22S12.5_A9_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A12-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token 'while'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'var'. Expected 'while' to end a do-while loop.
    22S12.6.1_A12
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Function statements must have a name.
    22S12.6.1_A13_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A15-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ':'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '}'. Expected ':' after property name.
    22S12.6.1_A15
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected number '1'. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected number '0'. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'true'. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'false'. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected string literal ''. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A6_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected string literal 'hood'. Expected '(' to start a do-while loop condition.
    22S12.6.1_A6_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A13_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Function statements must have a name.
    22S12.6.2_A13_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A15-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token ':'
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected token '}'. Expected ':' after property name.
    22S12.6.2_A15
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected number '1'. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected number '0'. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'true'. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected keyword 'false'. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected string literal ''. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Expected token '('
     1CONSOLE MESSAGE: line 78: SyntaxError: Unexpected string literal 'hood'. Expected '(' to start a while loop condition.
    22S12.6.2_A6_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11.1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'nonexist' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'nonexist'.
    22S12.6.3_A11.1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'nonexist' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'nonexist'.
    22S12.6.3_A11_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12.1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'nonexist' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'nonexist'.
    22S12.6.3_A12.1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'nonexist' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'nonexist'.
    22S12.6.3_A12_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4.1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token ';'. Expected ')' to end a for-in header.
    22S12.6.3_A4.1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token ';'. Expected ')' to end a for-in header.
    22S12.6.3_A4_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A4_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token ';'. Expected ')' to end a for-in header.
    22S12.6.3_A4_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token ';'. Expected ')' to end a for-loop header.
    22S12.6.3_A7.1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7.1_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token ';'. Expected ')' to end a for-loop header.
    22S12.6.3_A7.1_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token ';'. Expected ')' to end a for-loop header.
    22S12.6.3_A7_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A7_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Expected token ')'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token ';'. Expected ')' to end a for-loop header.
    22S12.6.3_A7_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T1-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'. Expected a ':' following the property name 'index'.
    22S12.6.3_A8.1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T2-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'. Expected a ':' following the property name 'index'.
    22S12.6.3_A8.1_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8.1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Expected an identifier but found 'index' instead
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected identifier 'index'. Expected a ':' following the property name 'var'.
    22S12.6.3_A8.1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T1-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'. Expected a ':' following the property name 'index'.
    22S12.6.3_A8_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T2-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '++'. Expected a ':' following the property name 'index'.
    22S12.6.3_A8_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A8_T3-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '='
     1CONSOLE MESSAGE: line 80: SyntaxError: Unexpected token '='. Expected a ':' following the property name 'index'.
    22S12.6.3_A8_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A13_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 76: SyntaxError: Unexpected token '('
     1CONSOLE MESSAGE: line 76: SyntaxError: Function statements must have a name.
    22S12.6.4_A13_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A15-expected.txt

    r108948 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '}'
     1CONSOLE MESSAGE: line 79: SyntaxError: Unexpected token '}'. Expected a ':' following the property name '__arr'.
    22S12.6.4_A15
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: 'continue' is only valid inside a loop statement
     1CONSOLE MESSAGE: line 80: SyntaxError: 'continue' is only valid inside a loop statement.
    22S12.7_A1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Label 'LABEL' is not defined
     1CONSOLE MESSAGE: line 81: SyntaxError: Cannot use the undeclared label 'LABEL'.
    22S12.7_A1_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'LABEL' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'LABEL'.
    22S12.7_A1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: 'continue' is only valid inside a loop statement
     1CONSOLE MESSAGE: line 81: SyntaxError: 'continue' is only valid inside a loop statement.
    22S12.7_A1_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Label 'LABEL_ANOTHER_LOOP' is not defined
     1CONSOLE MESSAGE: line 80: SyntaxError: Cannot use the undeclared label 'LABEL_ANOTHER_LOOP'.
    22S12.7_A5_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Label 'IN_DO_FUNC' is not defined
     1CONSOLE MESSAGE: line 80: SyntaxError: Cannot use the undeclared label 'IN_DO_FUNC'.
    22S12.7_A5_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Label 'LABEL_IN' is not defined
     1CONSOLE MESSAGE: line 81: SyntaxError: Cannot use the undeclared label 'LABEL_IN'.
    22S12.7_A5_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Label 'LABEL1' is not defined
     1CONSOLE MESSAGE: line 80: SyntaxError: Cannot use the undeclared label 'LABEL1'.
    22S12.7_A6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 86: SyntaxError: Label 'LABEL2' is not defined
     1CONSOLE MESSAGE: line 86: SyntaxError: Cannot use the undeclared label 'LABEL2'.
    22S12.7_A8_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 87: SyntaxError: 'continue' is only valid inside a loop statement
     1CONSOLE MESSAGE: line 87: SyntaxError: 'continue' is only valid inside a loop statement.
    22S12.7_A8_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: 'break' is only valid inside a switch or loop statement
     1CONSOLE MESSAGE: line 80: SyntaxError: 'break' is only valid inside a switch or loop statement.
    22S12.8_A1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Label 'LABEL' is not defined
     1CONSOLE MESSAGE: line 81: SyntaxError: Cannot use the undeclared label 'LABEL'.
    22S12.8_A1_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: 'break' is only valid inside a switch or loop statement
     1CONSOLE MESSAGE: line 81: SyntaxError: 'break' is only valid inside a switch or loop statement.
    22S12.8_A1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'LABEL' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'LABEL'.
    22S12.8_A1_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'LABEL_ANOTHER_LOOP' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'LABEL_ANOTHER_LOOP'.
    22S12.8_A5_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'IN_DO_FUNC' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'IN_DO_FUNC'.
    22S12.8_A5_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 82: SyntaxError: Label 'LABEL_IN' is not defined
     1CONSOLE MESSAGE: line 82: SyntaxError: Cannot use the undeclared label 'LABEL_IN'.
    22S12.8_A5_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Label 'LABEL1' is not defined
     1CONSOLE MESSAGE: line 80: SyntaxError: Cannot use the undeclared label 'LABEL1'.
    22S12.8_A6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 86: SyntaxError: Label 'LABEL2' is not defined
     1CONSOLE MESSAGE: line 86: SyntaxError: Cannot use the undeclared label 'LABEL2'.
    22S12.8_A8_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 87: SyntaxError: 'break' is only valid inside a switch or loop statement
     1CONSOLE MESSAGE: line 87: SyntaxError: 'break' is only valid inside a switch or loop statement.
    22S12.8_A8_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T1-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T1
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T10-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 78: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T10
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T2-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T2
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T3-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 79: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T3
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T4-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 78: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 78: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T4
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T5-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T5
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T6-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T6
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T7-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T7
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T8-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 80: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T8
    33
  • trunk/LayoutTests/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T9-expected.txt

    r89257 r158014  
    1 CONSOLE MESSAGE: line 81: SyntaxError: Return statements are only valid inside functions
     1CONSOLE MESSAGE: line 81: SyntaxError: Return statements are only valid inside functions.
    22S12.9_A1_T9
    33
  • trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.2/15.1.2.1_eval/S15.1.2.1_A2_T2-expected.txt

    r89257 r158014  
    11S15.1.2.1_A2_T2
    22
    3 PASS SyntaxError: Unexpected EOF
     3PASS SyntaxError: Unexpected end of script
    44
    55TEST COMPLETE
  • trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1-expected.txt

    r89257 r158014  
    11S15.3.4.2_A1_T1
    22
    3 FAIL SyntaxError: Unexpected token '('
     3FAIL SyntaxError: Function statements must have a name.
    44
    55TEST COMPLETE
  • trunk/Source/JavaScriptCore/ChangeLog

    r157987 r158014  
     12013-10-25  Oliver Hunt  <oliver@apple.com>
     2
     3        Improve JSC Parser error messages
     4        https://bugs.webkit.org/show_bug.cgi?id=123341
     5
     6        Reviewed by Andreas Kling.
     7
     8        This patch moves away from the current cludgy mechanisms used to produce
     9        error messages and moves to something closer to case by case errors.
     10
     11        This results in a large change size as previously we may just have
     12        'failIfFalse(foo)', but now the logic becomes either
     13        'failIfFalseWithMessage(foo, "Cannot do blah with ", foo->thing())'
     14        Or alternatively
     15
     16        if (!foo)
     17            check for 'interesting' errors, before falling back to generic error
     18
     19        This means that this patch is large, but produces no semantic changes, and
     20        only hits slow (e.g. error) paths.
     21
     22        * parser/Parser.cpp:
     23        (JSC::::Parser):
     24        (JSC::::parseSourceElements):
     25        (JSC::::parseVarDeclaration):
     26        (JSC::::parseConstDeclaration):
     27        (JSC::::parseDoWhileStatement):
     28        (JSC::::parseWhileStatement):
     29        (JSC::::parseVarDeclarationList):
     30        (JSC::::createBindingPattern):
     31        (JSC::::parseDeconstructionPattern):
     32        (JSC::::parseConstDeclarationList):
     33        (JSC::::parseForStatement):
     34        (JSC::::parseBreakStatement):
     35        (JSC::::parseContinueStatement):
     36        (JSC::::parseReturnStatement):
     37        (JSC::::parseThrowStatement):
     38        (JSC::::parseWithStatement):
     39        (JSC::::parseSwitchStatement):
     40        (JSC::::parseSwitchClauses):
     41        (JSC::::parseSwitchDefaultClause):
     42        (JSC::::parseTryStatement):
     43        (JSC::::parseDebuggerStatement):
     44        (JSC::::parseBlockStatement):
     45        (JSC::::parseStatement):
     46        (JSC::::parseFormalParameters):
     47        (JSC::::parseFunctionBody):
     48        (JSC::stringForFunctionMode):
     49        (JSC::::parseFunctionInfo):
     50        (JSC::::parseFunctionDeclaration):
     51        (JSC::::parseExpressionOrLabelStatement):
     52        (JSC::::parseExpressionStatement):
     53        (JSC::::parseIfStatement):
     54        (JSC::::parseExpression):
     55        (JSC::::parseAssignmentExpression):
     56        (JSC::::parseConditionalExpression):
     57        (JSC::::parseBinaryExpression):
     58        (JSC::::parseProperty):
     59        (JSC::::parseObjectLiteral):
     60        (JSC::::parseStrictObjectLiteral):
     61        (JSC::::parseArrayLiteral):
     62        (JSC::::parsePrimaryExpression):
     63        (JSC::::parseArguments):
     64        (JSC::::parseMemberExpression):
     65        (JSC::operatorString):
     66        (JSC::::parseUnaryExpression):
     67        (JSC::::printUnexpectedTokenText):
     68        * parser/Parser.h:
     69        (JSC::Scope::hasDeclaredVariable):
     70        (JSC::Scope::hasDeclaredParameter):
     71        (JSC::Parser::hasDeclaredVariable):
     72        (JSC::Parser::hasDeclaredParameter):
     73        (JSC::Parser::setErrorMessage):
     74
    1752013-10-24  Mark Rowe  <mrowe@apple.com>
    276
  • trunk/Source/JavaScriptCore/parser/Parser.cpp

    r157724 r158014  
    3737#include <wtf/WTFThreadData.h>
    3838
    39 #define fail() do { if (!hasError()) updateErrorMessage(); return 0; } while (0)
    40 #define failWithToken(tok) do { if (!hasError()) updateErrorMessage(tok); return 0; } while (0)
    41 #define failWithMessage(msg) do { if (!hasError()) updateErrorMessage(msg); return 0; } while (0)
    42 #define failWithNameAndMessage(before, name, after) do { if (!hasError()) updateErrorWithNameAndMessage(before, name, after); return 0; } while (0)
    43 #define failWithStackOverflow() do { updateErrorMessage("Stack exhausted"); m_hasStackOverflow = true; return 0; } while (0)
    44 #define failIfFalse(cond) do { if (!(cond)) fail(); } while (0)
    45 #define failIfFalseWithMessage(cond, msg) do { if (!(cond)) failWithMessage(msg); } while (0)
    46 #define failIfFalseWithNameAndMessage(cond, before, name, msg) do { if (!(cond)) failWithNameAndMessage(before, name, msg); } while (0)
    47 #define failIfTrue(cond) do { if ((cond)) fail(); } while (0)
    48 #define failIfTrueWithMessage(cond, msg) do { if ((cond)) failWithMessage(msg); } while (0)
    49 #define failIfTrueWithNameAndMessage(cond, before, name, msg) do { if ((cond)) failWithNameAndMessage(before, name, msg); } while (0)
    50 #define failIfTrueIfStrict(cond) do { if ((cond) && strictMode()) fail(); } while (0)
    51 #define failIfTrueIfStrictWithMessage(cond, msg) do { if ((cond) && strictMode()) failWithMessage(msg); } while (0)
    52 #define failIfTrueIfStrictWithNameAndMessage(cond, before, name, after) do { if ((cond) && strictMode()) failWithNameAndMessage(before, name, after); } while (0)
    53 #define failIfFalseIfStrict(cond) do { if ((!(cond)) && strictMode()) fail(); } while (0)
    54 #define failIfFalseIfStrictWithMessage(cond, msg) do { if ((!(cond)) && strictMode()) failWithMessage(msg); } while (0)
    55 #define failIfFalseIfStrictWithNameAndMessage(cond, before, name, after) do { if ((!(cond)) && strictMode()) failWithNameAndMessage(before, name, after); } while (0)
    56 #define consumeOrFail(tokenType) do { if (!consume(tokenType)) failWithToken(tokenType); } while (0)
    57 #define consumeOrFailWithFlags(tokenType, flags) do { if (!consume(tokenType, flags)) failWithToken(tokenType); } while (0)
    58 #define matchOrFail(tokenType) do { if (!match(tokenType)) failWithToken(tokenType); } while (0)
     39#define updateErrorMessage(shouldPrintToken, ...) do {\
     40    ASSERT(!hasError());\
     41    StringPrintStream stream;\
     42    if (shouldPrintToken) {\
     43        printUnexpectedTokenText(stream); \
     44        stream.print(". "); \
     45    }\
     46    stream.print(__VA_ARGS__);\
     47    stream.print(".");\
     48    setErrorMessage(stream.toString());\
     49} while (0)
     50
     51#define propagateError() do { if (hasError()) return 0; } while (0)
     52#define internalFailWithMessage(shouldPrintToken, ...) do { if (!hasError()) updateErrorMessage(shouldPrintToken, __VA_ARGS__); return 0; } while (0)
     53#define handleErrorToken() do { if (m_token.m_type == EOFTOK || m_token.m_type & ErrorTokenFlag) { failDueToUnexpectedToken(); } } while (0)
     54#define failWithMessage(...) do { if (!hasError()) { handleErrorToken(); updateErrorMessage(true, __VA_ARGS__); } return 0; } while (0)
     55#define failWithStackOverflow() do { updateErrorMessage(false, "Stack exhausted"); m_hasStackOverflow = true; return 0; } while (0)
     56#define failIfFalse(cond, ...) do { if (!(cond)) { handleErrorToken(); internalFailWithMessage(true, __VA_ARGS__); } } while (0)
     57#define failIfTrue(cond, ...) do { if ((cond)) { handleErrorToken(); internalFailWithMessage(true, __VA_ARGS__); } } while (0)
     58#define failIfTrueIfStrict(cond, ...) do { if ((cond) && strictMode()) internalFailWithMessage(false, __VA_ARGS__); } while (0)
     59#define failIfFalseIfStrict(cond, ...) do { if ((!(cond)) && strictMode()) internalFailWithMessage(false, __VA_ARGS__); } while (0)
     60#define consumeOrFail(tokenType, ...) do { if (!consume(tokenType)) { handleErrorToken(); internalFailWithMessage(true, __VA_ARGS__); } } while (0)
     61#define consumeOrFailWithFlags(tokenType, flags, ...) do { if (!consume(tokenType, flags)) { handleErrorToken(); internalFailWithMessage(true, __VA_ARGS__); } } while (0)
     62#define matchOrFail(tokenType, ...) do { if (!match(tokenType)) { handleErrorToken(); internalFailWithMessage(true, __VA_ARGS__); } } while (0)
    5963#define failIfStackOverflow() do { if (!canRecurse()) failWithStackOverflow(); } while (0)
     64#define semanticFail(...) do { internalFailWithMessage(false, __VA_ARGS__); } while (0)
     65#define semanticFailIfTrue(cond, ...) do { if ((cond)) internalFailWithMessage(false, __VA_ARGS__); } while (0)
     66#define semanticFailIfFalse(cond, ...) do { if (!(cond)) internalFailWithMessage(false, __VA_ARGS__); } while (0)
     67#define regexFail(failure) do { if (!hasError()) setErrorMessage(failure); return 0; } while (0)
     68#define failDueToUnexpectedToken() do {\
     69    if (!hasError()) {\
     70        StringPrintStream stream;\
     71        printUnexpectedTokenText(stream); \
     72        setErrorMessage(stream.toString());\
     73    }\
     74    return 0;\
     75} while (0)
     76
     77#define handleProductionOrFail(token, tokenString, operation, production) do {\
     78    consumeOrFail(token, "Expected '", tokenString, "' to ", operation, " a ", production);\
     79} while (0)
     80
     81#define semanticFailureDueToKeyword(forWhat...) do { \
     82    if (strictMode() && m_token.m_type == RESERVED_IF_STRICT) \
     83        semanticFail("Cannot use the reserved word '", getToken(), "' as a ", forWhat, " in strict mode"); \
     84    if (m_token.m_type == RESERVED || m_token.m_type == RESERVED_IF_STRICT) \
     85        semanticFail("Cannot use the reserved word '", getToken(), "' as a ", forWhat); \
     86    if (m_token.m_type & KeywordTokenFlag) \
     87        semanticFail("Cannot use the keyword '", getToken(), "' as a ", forWhat); \
     88} while (0)
    6089
    6190using namespace std;
     
    76105    , m_nonTrivialExpressionCount(0)
    77106    , m_lastIdentifier(0)
     107    , m_lastFunctionName(nullptr)
    78108    , m_sourceElements(0)
    79109{
     
    181211                    setStrictMode();
    182212                    hasSetStrict = true;
    183                     failIfFalse(isValidStrictMode());
     213                    if (!isValidStrictMode()) {
     214                        if (m_lastFunctionName) {
     215                            if (m_vm->propertyNames->arguments == *m_lastFunctionName)
     216                                semanticFail("Cannot name a function 'arguments' in strict mode");
     217                            if (m_vm->propertyNames->eval == *m_lastFunctionName)
     218                                semanticFail("Cannot name a function 'eval' in strict mode");
     219                        }
     220                        if (hasDeclaredVariable(m_vm->propertyNames->arguments))
     221                            semanticFail("Cannot declare a variable named 'arguments' in strict mode");
     222                        if (hasDeclaredVariable(m_vm->propertyNames->eval))
     223                            semanticFail("Cannot declare a variable named 'eval' in strict mode");
     224                        semanticFailIfFalse(isValidStrictMode(), "Invalid parameters or function name in strict mode");
     225                    }
    184226                    m_lexer->setOffset(startOffset, startLineStartOffset);
    185227                    next();
    186228                    m_lexer->setLastLineNumber(oldLastLineNumber);
    187229                    m_lexer->setLineNumber(oldLineNumber);
    188                     failIfTrue(hasError());
     230                    propagateError();
    189231                    continue;
    190232                }
     
    195237    }
    196238
    197     failIfTrue(hasError());
     239    propagateError();
    198240    return sourceElements;
    199241}
     
    211253    JSTextPosition scratch3;
    212254    TreeExpression varDecls = parseVarDeclarationList(context, scratch, scratch1, scratch2, scratch3, scratch3, scratch3);
    213     failIfTrue(hasError());
    214     failIfFalse(autoSemiColon());
     255    propagateError();
     256    failIfFalse(autoSemiColon(), "Expected ';' after var declaration");
    215257   
    216258    return context.createVarStatement(location, varDecls, start, end);
     
    225267    int end = 0;
    226268    TreeConstDeclList constDecls = parseConstDeclarationList(context);
    227     failIfTrue(hasError());
    228     failIfFalse(autoSemiColon());
     269    propagateError();
     270    failIfFalse(autoSemiColon(), "Expected ';' after const declaration");
    229271   
    230272    return context.createConstStatement(location, constDecls, start, end);
     
    241283    TreeStatement statement = parseStatement(context, unused);
    242284    endLoop();
    243     failIfFalse(statement);
     285    failIfFalse(statement, "Expected a statement following 'do'");
    244286    int endLine = tokenLine();
    245287    JSTokenLocation location(tokenLocation());
    246     consumeOrFail(WHILE);
    247     consumeOrFail(OPENPAREN);
     288    handleProductionOrFail(WHILE, "while", "end", "do-while loop");
     289    handleProductionOrFail(OPENPAREN, "(", "start", "do-while loop condition");
     290    semanticFailIfTrue(match(CLOSEPAREN), "Must provide an expression as a do-while loop condition");
    248291    TreeExpression expr = parseExpression(context);
    249     failIfFalse(expr);
    250     consumeOrFail(CLOSEPAREN);
     292    failIfFalse(expr, "Unable to parse do-while loop condition");
     293    handleProductionOrFail(CLOSEPAREN, ")", "end", "do-while loop condition");
    251294    if (match(SEMICOLON))
    252295        next(); // Always performs automatic semicolon insertion.
     
    261304    int startLine = tokenLine();
    262305    next();
    263     consumeOrFail(OPENPAREN);
     306   
     307    handleProductionOrFail(OPENPAREN, "(", "start", "while loop condition");
     308    semanticFailIfTrue(match(CLOSEPAREN), "Must provide an expression as a while loop condition");
    264309    TreeExpression expr = parseExpression(context);
    265     failIfFalse(expr);
     310    failIfFalse(expr, "Unable to parse while loop condition");
    266311    int endLine = tokenLine();
    267     consumeOrFail(CLOSEPAREN);
     312    handleProductionOrFail(CLOSEPAREN, ")", "end", "while loop condition");
     313   
    268314    const Identifier* unused = 0;
    269315    startLoop();
    270316    TreeStatement statement = parseStatement(context, unused);
    271317    endLoop();
    272     failIfFalse(statement);
     318    failIfFalse(statement, "Expected a statement as the body of a while loop");
    273319    return context.createWhileStatement(location, expr, statement, startLine, endLine);
    274320}
     
    294340            next();
    295341            hasInitializer = match(EQUAL);
    296             failIfFalseIfStrictWithNameAndMessage(declareVariable(name), "Cannot declare a variable named", name->impl(), "in strict mode.");
     342            failIfFalseIfStrict(declareVariable(name), "Cannot declare a variable named ", name->impl(), " in strict mode");
    297343            context.addVar(name, (hasInitializer || (!m_allowsIn && (match(INTOKEN) || isofToken()))) ? DeclarationStacks::HasInitializer : 0);
    298344            if (hasInitializer) {
     
    303349                initEnd = lastTokenEndPosition();
    304350                lastInitializer = initializer;
    305                 failIfFalse(initializer);
     351                failIfFalse(initializer, "Expected expression as the intializer for the variable '", name->impl(), "'");
    306352               
    307353                node = context.createAssignResolve(location, *name, initializer, varStart, varDivot, lastTokenEndPosition());
     
    310356            lastIdent = 0;
    311357            auto pattern = parseDeconstructionPattern<DeconstructToVariables>(context);
    312             failIfFalse(pattern);
     358            failIfFalse(pattern, "Cannot parse this deconstruction pattern");
    313359            hasInitializer = match(EQUAL);
    314360            lastPattern = pattern;
     
    341387    if (depth) {
    342388        if (kind == DeconstructToVariables)
    343             failIfFalseIfStrictWithNameAndMessage(declareVariable(&name), "Cannot deconstruct to a variable named", name.impl(), ".");
     389            failIfFalseIfStrict(declareVariable(&name), "Cannot deconstruct to a variable named '", name.impl(), "' in strict mode");
    344390        if (kind == DeconstructToParameters) {
    345391            auto bindingResult = declareBoundParameter(&name);
    346             failIfFalseIfStrictWithNameAndMessage(bindingResult != Scope::StrictBindingFailed, "Cannot deconstruct to a parameter named", name.impl(), "in strict mode.");
    347             failIfFalseWithNameAndMessage(bindingResult != Scope::BindingFailed, "Cannot deconstruct to a parameter named", name.impl(), ".");
     392            if (bindingResult == Scope::StrictBindingFailed && strictMode()) {
     393                semanticFailIfTrue(m_vm->propertyNames->arguments == name || m_vm->propertyNames->eval == name, "Cannot deconstruct to a parameter name '", name.impl(), "' in strict mode");
     394                if (m_lastFunctionName && name == *m_lastFunctionName)
     395                    semanticFail("Cannot deconstruct to '", name.impl(), "' as it shadows the name of a strict mode function");
     396                semanticFailureDueToKeyword("bound parameter name");
     397                if (hasDeclaredParameter(name))
     398                    semanticFail("Cannot deconstruct to '", name.impl(), "' as it has already been declared");
     399                semanticFail("Cannot bind to a parameter named '", name.impl(), "' in strict mode");
     400            }
     401            if (bindingResult == Scope::BindingFailed) {
     402                semanticFailureDueToKeyword("bound parameter name");
     403                if (hasDeclaredParameter(name))
     404                    semanticFail("Cannot deconstruct to '", name.impl(), "' as it has already been declared");
     405                semanticFail("Cannot deconstruct to a parameter named '", name.impl(), "'");
     406            }
    348407        }
    349408        context.addVar(&name, kind == DeconstructToParameters ? 0 : DeclarationStacks::HasInitializer);
    350409    } else {
    351410        if (kind == DeconstructToVariables) {
    352             failIfFalseIfStrictWithNameAndMessage(declareVariable(&name), "Cannot declare a variable named", name.impl(), "in strict mode.");
     411            failIfFalseIfStrict(declareVariable(&name), "Cannot declare a variable named '", name.impl(), "' in strict mode");
    353412            context.addVar(&name, DeclarationStacks::HasInitializer);
    354413        }
    355414       
    356         if (kind == DeconstructToParameters)
    357             failIfFalseIfStrictWithNameAndMessage(declareParameter(&name), "Cannot declare a parameter named", name.impl(), "in strict mode.");
     415        if (kind == DeconstructToParameters) {
     416            bool declarationResult = declareParameter(&name);
     417            if (!declarationResult && strictMode()) {
     418                semanticFailIfTrue(m_vm->propertyNames->arguments == name || m_vm->propertyNames->eval == name, "Cannot deconstruct to a parameter name '", name.impl(), "' in strict mode");
     419                if (m_lastFunctionName && name == *m_lastFunctionName)
     420                    semanticFail("Cannot declare a parameter named '", name.impl(), "' as it shadows the name of a strict mode function");
     421                semanticFailureDueToKeyword("parameter name");
     422                if (hasDeclaredParameter(name))
     423                    semanticFail("Cannot declare a parameter named '", name.impl(), "' in strict mode as it has already been declared");
     424                semanticFail("Cannot declare a parameter named '", name.impl(), "' in strict mode");
     425            }
     426        }
    358427    }
    359428    return context.createBindingLocation(m_token.m_location, name, m_token.m_endPosition, m_token.m_startPosition, m_token.m_endPosition);
     
    370439        auto arrayPattern = context.createArrayPattern(m_token.m_location);
    371440        next();
     441        failIfTrue(match(CLOSEBRACKET), "There must be at least one bound property in an array deconstruction pattern");
    372442        do {
    373443            while (match(COMMA)) {
     
    375445                next();
    376446            }
    377             failIfTrue(hasError());
     447            propagateError();
    378448            JSTokenLocation location = m_token.m_location;
    379449            auto innerPattern = parseDeconstructionPattern<kind>(context, depth + 1);
    380             failIfFalse(innerPattern);
     450            failIfFalse(innerPattern, "Cannot parse this deconstruction pattern");
    381451            context.appendArrayPatternEntry(arrayPattern, location, innerPattern);
    382452        } while (consume(COMMA));
    383         consumeOrFail(CLOSEBRACKET);
     453        consumeOrFail(CLOSEBRACKET, "Expected either a closing ']' or a ',' following an element deconstruction pattern");
    384454        pattern = arrayPattern;
    385455        break;
     
    387457    case OPENBRACE: {
    388458        next();
     459        failIfTrue(match(CLOSEBRACE), "There must be at least one bound property in an object deconstruction pattern");
    389460        auto objectPattern = context.createObjectPattern(m_token.m_location);
    390461        bool wasString = false;
     
    401472                    innerPattern = createBindingPattern<kind>(context, propertyName, depth);
    402473            } else {
     474                JSTokenType tokenType = m_token.m_type;
    403475                switch (m_token.m_type) {
    404476                case NUMBER:
     
    410482                    break;
    411483                default:
    412                     failIfTrue(!(m_token.m_type & KeywordTokenFlag));
     484                    if (m_token.m_type != RESERVED && m_token.m_type != RESERVED_IF_STRICT && !(m_token.m_type & KeywordTokenFlag))
     485                        failWithMessage("Expected a property name");
    413486                    propertyName = *m_token.m_data.ident;
    414487                    break;
    415488                }
    416489                next();
    417                 consumeOrFail(COLON);
     490                if (!consume(COLON)) {
     491                    semanticFailIfTrue(tokenType == RESERVED, "Cannot use abbreviated deconstruction syntax for reserved name '", propertyName.impl(), "'");
     492                    semanticFailIfTrue(tokenType == RESERVED_IF_STRICT, "Cannot use abbreviated deconstruction syntax for reserved name '", propertyName.impl(), "' in strict mode");
     493                    semanticFailIfTrue(tokenType & KeywordTokenFlag, "Cannot use abbreviated deconstruction syntax for keyword '", propertyName.impl(), "'");
     494                   
     495                    failWithMessage("Expected a ':' prior to named property deconstruction");
     496                }
    418497                innerPattern = parseDeconstructionPattern<kind>(context, depth + 1);
    419498            }
    420             failIfFalse(innerPattern);
     499            failIfFalse(innerPattern, "Cannot parse this deconstruction pattern");
    421500            context.appendObjectPatternEntry(objectPattern, location, wasString, propertyName, innerPattern);
    422501        } while (consume(COMMA));
    423         consumeOrFail(CLOSEBRACE);
     502        consumeOrFail(CLOSEBRACE, "Expected either a closing '}' or an ',' after a property deconstruction pattern");
    424503        pattern = objectPattern;
    425504        break;
     
    427506
    428507    default: {
    429         matchOrFail(IDENT);
     508        if (!match(IDENT)) {
     509            semanticFailureDueToKeyword("variable name");
     510            failWithMessage("Expected a parameter pattern or a ')' in parameter list");
     511        }
    430512        pattern = createBindingPattern<kind>(context, *m_token.m_data.ident, depth);
    431513        next();
     
    440522template <class TreeBuilder> TreeConstDeclList Parser<LexerType>::parseConstDeclarationList(TreeBuilder& context)
    441523{
    442     failIfTrue(strictMode());
     524    failIfTrue(strictMode(), "Const declarations are not supported in strict mode");
    443525    TreeConstDeclList constDecls = 0;
    444526    TreeConstDeclList tail = 0;
     
    446528        JSTokenLocation location(tokenLocation());
    447529        next();
    448         matchOrFail(IDENT);
     530        matchOrFail(IDENT, "Expected an identifier name in const declaration");
    449531        const Identifier* name = m_token.m_data.ident;
    450532        next();
     
    472554    int startLine = tokenLine();
    473555    next();
    474     consumeOrFail(OPENPAREN);
     556    handleProductionOrFail(OPENPAREN, "(", "start", "for-loop header");
    475557    int nonLHSCount = m_nonLHSCount;
    476558    int declarations = 0;
     
    490572        decls = parseVarDeclarationList(context, declarations, forInTarget, forInInitializer, declsStart, initStart, initEnd);
    491573        m_allowsIn = true;
    492         failIfTrue(hasError());
     574        propagateError();
    493575
    494576        // Remainder of a standard for loop is handled identically
     
    496578            goto standardForLoop;
    497579       
    498         failIfFalse(declarations == 1);
    499         failIfTrueWithMessage(forInInitializer, "Cannot use initialiser syntax in a for-in loop");
     580        failIfFalse(declarations == 1, "must declare variables after 'var'");
     581        failIfTrue(forInInitializer, "Cannot use initialiser syntax in a for-in loop");
    500582       
    501583        // Handle for-in with var declaration
     
    503585        bool isOfEnumeration = false;
    504586        if (!consume(INTOKEN)) {
    505             failIfFalseWithMessage(match(IDENT) && *m_token.m_data.ident == m_vm->propertyNames->of, "Expected either 'in' or 'of' in enumeration syntax");
     587            failIfFalse(match(IDENT) && *m_token.m_data.ident == m_vm->propertyNames->of, "Expected either 'in' or 'of' in enumeration syntax");
    506588            isOfEnumeration = true;
    507589            next();
     
    509591       
    510592        TreeExpression expr = parseExpression(context);
    511         failIfFalse(expr);
     593        failIfFalse(expr, "Expected expression to enumerate");
    512594        JSTextPosition exprEnd = lastTokenEndPosition();
    513595       
    514596        int endLine = tokenLine();
    515         consumeOrFail(CLOSEPAREN);
     597       
     598        handleProductionOrFail(CLOSEPAREN, ")", "end", (isOfEnumeration ? "for-of header" : "for-in header"));
    516599       
    517600        const Identifier* unused = 0;
     
    519602        TreeStatement statement = parseStatement(context, unused);
    520603        endLoop();
    521         failIfFalse(statement);
     604        failIfFalse(statement, "Expected statement as body of for-", isOfEnumeration ? "of" : "in", " statement");
    522605        if (isOfEnumeration)
    523606            return context.createForOfLoop(location, forInTarget, expr, statement, declsStart, inLocation, exprEnd, startLine, endLine);
     
    531614        declsEnd = lastTokenEndPosition();
    532615        m_allowsIn = true;
    533         failIfFalse(decls);
     616        failIfFalse(decls, "Cannot parse for loop declarations");
    534617    }
    535618   
     
    542625        if (!match(SEMICOLON)) {
    543626            condition = parseExpression(context);
    544             failIfFalse(condition);
    545         }
    546         consumeOrFail(SEMICOLON);
     627            failIfFalse(condition, "Cannot parse for loop condition expression");
     628        }
     629        consumeOrFail(SEMICOLON, "Expected a ';' after the for loop condition expression");
    547630       
    548631        TreeExpression increment = 0;
    549632        if (!match(CLOSEPAREN)) {
    550633            increment = parseExpression(context);
    551             failIfFalse(increment);
     634            failIfFalse(increment, "Cannot parse for loop iteration expression");
    552635        }
    553636        int endLine = tokenLine();
    554         consumeOrFail(CLOSEPAREN);
     637        handleProductionOrFail(CLOSEPAREN, ")", "end", "for-loop header");
    555638        const Identifier* unused = 0;
    556639        startLoop();
    557640        TreeStatement statement = parseStatement(context, unused);
    558641        endLoop();
    559         failIfFalse(statement);
     642        failIfFalse(statement, "Expected a statement as the body of a for loop");
    560643        return context.createForLoop(location, decls, condition, increment, statement, startLine, endLine);
    561644    }
    562645   
    563646    // For-in loop
    564     failIfFalse(nonLHSCount == m_nonLHSCount);
     647    failIfFalse(nonLHSCount == m_nonLHSCount, "Expected a reference on the left hand side of an enumeration statement");
    565648    bool isOfEnumeration = false;
    566649    if (!consume(INTOKEN)) {
    567         failIfFalseWithMessage(match(IDENT) && *m_token.m_data.ident == m_vm->propertyNames->of, "Expected either 'in' or 'of' in enumeration syntax");
     650        failIfFalse(match(IDENT) && *m_token.m_data.ident == m_vm->propertyNames->of, "Expected either 'in' or 'of' in enumeration syntax");
    568651        isOfEnumeration = true;
    569652        next();
    570653    }
    571654    TreeExpression expr = parseExpression(context);
    572     failIfFalse(expr);
     655    failIfFalse(expr, "Cannot parse subject for-", isOfEnumeration ? "of" : "in", " statement");
    573656    JSTextPosition exprEnd = lastTokenEndPosition();
    574657    int endLine = tokenLine();
    575     consumeOrFail(CLOSEPAREN);
     658   
     659    handleProductionOrFail(CLOSEPAREN, ")", "end", (isOfEnumeration ? "for-of header" : "for-in header"));
    576660    const Identifier* unused = 0;
    577661    startLoop();
    578662    TreeStatement statement = parseStatement(context, unused);
    579663    endLoop();
    580     failIfFalse(statement);
     664    failIfFalse(statement, "Expected a statement as the body of a for-", isOfEnumeration ? "of" : "in", "loop");
    581665    if (isOfEnumeration)
    582666        return context.createForOfLoop(location, decls, expr, statement, declsStart, declsEnd, exprEnd, startLine, endLine);
     
    594678   
    595679    if (autoSemiColon()) {
    596         failIfFalseWithMessage(breakIsValid(), "'break' is only valid inside a switch or loop statement");
     680        semanticFailIfFalse(breakIsValid(), "'break' is only valid inside a switch or loop statement");
    597681        return context.createBreakStatement(location, start, end);
    598682    }
    599     matchOrFail(IDENT);
     683    matchOrFail(IDENT, "Expected an identifier as the target for a break statement");
    600684    const Identifier* ident = m_token.m_data.ident;
    601     failIfFalseWithNameAndMessage(getLabel(ident), "Label", ident->impl(), "is not defined");
     685    semanticFailIfFalse(getLabel(ident), "Cannot use the undeclared label '", ident->impl(), "'");
    602686    end = tokenEndPosition();
    603687    next();
    604     failIfFalse(autoSemiColon());
     688    failIfFalse(autoSemiColon(), "Expected a ';' following a targeted break statement");
    605689    return context.createBreakStatement(location, ident, start, end);
    606690}
     
    616700   
    617701    if (autoSemiColon()) {
    618         failIfFalseWithMessage(continueIsValid(), "'continue' is only valid inside a loop statement");
     702        semanticFailIfFalse(continueIsValid(), "'continue' is only valid inside a loop statement");
    619703        return context.createContinueStatement(location, start, end);
    620704    }
    621     matchOrFail(IDENT);
     705    matchOrFail(IDENT, "Expected an identifier as the target for a continue statement");
    622706    const Identifier* ident = m_token.m_data.ident;
    623707    ScopeLabelInfo* label = getLabel(ident);
    624     failIfFalseWithNameAndMessage(label, "Label", ident->impl(), "is not defined");
    625     failIfFalseWithMessage(label->m_isLoop, "'continue' is only valid inside a loop statement");
     708    semanticFailIfFalse(label, "Cannot use the undeclared label '", ident->impl(), "'");
     709    semanticFailIfFalse(label->m_isLoop, "Cannot continue to the label '", ident->impl(), "' as it is not targeting a loop");
    626710    end = tokenEndPosition();
    627711    next();
    628     failIfFalse(autoSemiColon());
     712    failIfFalse(autoSemiColon(), "Expected a ';' following a targeted continue statement");
    629713    return context.createContinueStatement(location, ident, start, end);
    630714}
     
    635719    ASSERT(match(RETURN));
    636720    JSTokenLocation location(tokenLocation());
    637     failIfFalse(currentScope()->isFunction());
     721    semanticFailIfFalse(currentScope()->isFunction(), "Return statements are only valid inside functions");
    638722    JSTextPosition start = tokenStartPosition();
    639723    JSTextPosition end = tokenEndPosition();
    640724    next();
    641     // We do the auto semicolon check before attempting to parse an expression
     725    // We do the auto semicolon check before attempting to parse expression
    642726    // as we need to ensure the a line break after the return correctly terminates
    643727    // the statement
     
    648732        return context.createReturnStatement(location, 0, start, end);
    649733    TreeExpression expr = parseExpression(context);
    650     failIfFalse(expr);
     734    failIfFalse(expr, "Cannot parse the return expression");
    651735    end = lastTokenEndPosition();
    652736    if (match(SEMICOLON))
    653737        end  = tokenEndPosition();
    654     failIfFalse(autoSemiColon());
     738    if (!autoSemiColon())
     739        failWithMessage("Expected a ';' following a return statement");
    655740    return context.createReturnStatement(location, expr, start, end);
    656741}
     
    663748    JSTextPosition start = tokenStartPosition();
    664749    next();
    665    
    666     failIfTrue(autoSemiColon());
     750    failIfTrue(match(SEMICOLON), "Expected expression after 'throw'");
     751    semanticFailIfTrue(autoSemiColon(), "Cannot have a newline after 'throw'");
    667752   
    668753    TreeExpression expr = parseExpression(context);
    669     failIfFalse(expr);
     754    failIfFalse(expr, "Cannot parse expression for throw statement");
    670755    JSTextPosition end = lastTokenEndPosition();
    671     failIfFalse(autoSemiColon());
     756    failIfFalse(autoSemiColon(), "Expected a ';' after a throw statement");
    672757   
    673758    return context.createThrowStatement(location, expr, start, end);
     
    679764    ASSERT(match(WITH));
    680765    JSTokenLocation location(tokenLocation());
    681     failIfTrueWithMessage(strictMode(), "'with' statements are not valid in strict mode");
     766    semanticFailIfTrue(strictMode(), "'with' statements are not valid in strict mode");
    682767    currentScope()->setNeedsFullActivation();
    683768    int startLine = tokenLine();
    684769    next();
    685     consumeOrFail(OPENPAREN);
     770
     771    handleProductionOrFail(OPENPAREN, "(", "start", "subject of a 'with' statement");
    686772    int start = tokenStart();
    687773    TreeExpression expr = parseExpression(context);
    688     failIfFalse(expr);
     774    failIfFalse(expr, "Cannot parse 'with' subject expression");
    689775    JSTextPosition end = lastTokenEndPosition();
    690776    int endLine = tokenLine();
    691     consumeOrFail(CLOSEPAREN);
     777    handleProductionOrFail(CLOSEPAREN, ")", "start", "subject of a 'with' statement");
    692778    const Identifier* unused = 0;
    693779    TreeStatement statement = parseStatement(context, unused);
    694     failIfFalse(statement);
     780    failIfFalse(statement, "A 'with' statement must have a body");
    695781   
    696782    return context.createWithStatement(location, expr, statement, start, end, startLine, endLine);
     
    704790    int startLine = tokenLine();
    705791    next();
    706     consumeOrFail(OPENPAREN);
     792    handleProductionOrFail(OPENPAREN, "(", "start", "subject of a 'switch'");
    707793    TreeExpression expr = parseExpression(context);
    708     failIfFalse(expr);
     794    failIfFalse(expr, "Cannot parse switch subject expression");
    709795    int endLine = tokenLine();
    710     consumeOrFail(CLOSEPAREN);
    711     consumeOrFail(OPENBRACE);
     796   
     797    handleProductionOrFail(CLOSEPAREN, ")", "end", "subject of a 'switch'");
     798    handleProductionOrFail(OPENBRACE, "{", "start", "body of a 'switch'");
    712799    startSwitch();
    713800    TreeClauseList firstClauses = parseSwitchClauses(context);
    714     failIfTrue(hasError());
     801    propagateError();
    715802   
    716803    TreeClause defaultClause = parseSwitchDefaultClause(context);
    717     failIfTrue(hasError());
     804    propagateError();
    718805   
    719806    TreeClauseList secondClauses = parseSwitchClauses(context);
    720     failIfTrue(hasError());
     807    propagateError();
    721808    endSwitch();
    722     consumeOrFail(CLOSEBRACE);
     809    handleProductionOrFail(CLOSEBRACE, "}", "end", "body of a 'switch'");
    723810   
    724811    return context.createSwitchStatement(location, expr, firstClauses, defaultClause, secondClauses, startLine, endLine);
     
    733820    next();
    734821    TreeExpression condition = parseExpression(context);
    735     failIfFalse(condition);
    736     consumeOrFail(COLON);
     822    failIfFalse(condition, "Cannot parse switch clause");
     823    consumeOrFail(COLON, "Expected a ':' after switch clause expression");
    737824    TreeSourceElements statements = parseSourceElements<DontCheckForStrictMode>(context);
    738     failIfFalse(statements);
     825    failIfFalse(statements, "Cannot parse the body of a switch clause");
    739826    TreeClause clause = context.createClause(condition, statements);
    740827    TreeClauseList clauseList = context.createClauseList(clause);
     
    744831        next();
    745832        TreeExpression condition = parseExpression(context);
    746         failIfFalse(condition);
    747         consumeOrFail(COLON);
     833        failIfFalse(condition, "Cannot parse switch case expression");
     834        consumeOrFail(COLON, "Expected a ':' after switch clause expression");
    748835        TreeSourceElements statements = parseSourceElements<DontCheckForStrictMode>(context);
    749         failIfFalse(statements);
     836        failIfFalse(statements, "Cannot parse the body of a switch clause");
    750837        clause = context.createClause(condition, statements);
    751838        tail = context.createClauseList(tail, clause);
     
    760847        return 0;
    761848    next();
    762     consumeOrFail(COLON);
     849    consumeOrFail(COLON, "Expected a ':' after switch default clause");
    763850    TreeSourceElements statements = parseSourceElements<DontCheckForStrictMode>(context);
    764     failIfFalse(statements);
     851    failIfFalse(statements, "Cannot parse the body of a switch default clause");
    765852    return context.createClause(0, statements);
    766853}
     
    777864    int firstLine = tokenLine();
    778865    next();
    779     matchOrFail(OPENBRACE);
     866    matchOrFail(OPENBRACE, "Expected a block statement as body of a try statement");
    780867   
    781868    tryBlock = parseBlockStatement(context);
    782     failIfFalse(tryBlock);
     869    failIfFalse(tryBlock, "Cannot parse the body of try block");
    783870    int lastLine = m_lastTokenEndPosition.line;
    784871   
     
    786873        currentScope()->setNeedsFullActivation();
    787874        next();
    788         consumeOrFail(OPENPAREN);
    789         matchOrFail(IDENT);
     875       
     876        handleProductionOrFail(OPENPAREN, "(", "start", "'catch' target");
     877        if (!match(IDENT)) {
     878            semanticFailureDueToKeyword("catch variable name");
     879            failWithMessage("Expected identifier name as catch target");
     880        }
    790881        ident = m_token.m_data.ident;
    791882        next();
    792883        AutoPopScopeRef catchScope(this, pushScope());
    793         failIfFalseIfStrictWithNameAndMessage(declareVariable(ident), "Cannot declare a variable named", ident->impl(), "in strict mode");
     884        failIfFalseIfStrict(declareVariable(ident), "Cannot declare a catch variable named '", ident->impl(), "' in strict mode");
    794885        catchScope->preventNewDecls();
    795         consumeOrFail(CLOSEPAREN);
    796         matchOrFail(OPENBRACE);
     886        handleProductionOrFail(CLOSEPAREN, ")", "end", "'catch' target");
     887        matchOrFail(OPENBRACE, "Expected exception handler to be a block statement");
    797888        catchBlock = parseBlockStatement(context);
    798         failIfFalseWithMessage(catchBlock, "'try' must have a catch or finally block");
    799         failIfFalse(popScope(catchScope, TreeBuilder::NeedsFreeVariableInfo));
     889        failIfFalse(catchBlock, "Unable to parse 'catch' block");
     890        failIfFalse(popScope(catchScope, TreeBuilder::NeedsFreeVariableInfo), "Parse error");
    800891    }
    801892   
    802893    if (match(FINALLY)) {
    803894        next();
    804         matchOrFail(OPENBRACE);
     895        matchOrFail(OPENBRACE, "Expected block statement for finally body");
    805896        finallyBlock = parseBlockStatement(context);
    806         failIfFalse(finallyBlock);
    807     }
    808     failIfFalse(catchBlock || finallyBlock);
     897        failIfFalse(finallyBlock, "Cannot parse finally body");
     898    }
     899    failIfFalse(catchBlock || finallyBlock, "Try statements must have at least a catch or finally block");
    809900    return context.createTryStatement(location, tryBlock, ident, catchBlock, finallyBlock, firstLine, lastLine);
    810901}
     
    820911    if (match(SEMICOLON))
    821912        startLine = tokenLine();
    822     failIfFalse(autoSemiColon());
     913    failIfFalse(autoSemiColon(), "Debugger keyword must be followed by a ';'");
    823914    return context.createDebugger(location, startLine, endLine);
    824915}
     
    836927    }
    837928    TreeSourceElements subtree = parseSourceElements<DontCheckForStrictMode>(context);
    838     failIfFalse(subtree);
    839     matchOrFail(CLOSEBRACE);
     929    failIfFalse(subtree, "Cannot parse the body of the block statement");
     930    matchOrFail(CLOSEBRACE, "Expected a closing '}' at the end of a block statement");
    840931    next();
    841932    return context.createBlockStatement(location, subtree, start, m_lastTokenEndPosition.line);
     
    858949        return parseConstDeclaration(context);
    859950    case FUNCTION:
    860         failIfFalseIfStrictWithMessage(m_statementDepth == 1, "Functions cannot be declared in a nested block in strict mode");
     951        failIfFalseIfStrict(m_statementDepth == 1, "Nested functions cannot be declared in strict mode");
    861952        return parseFunctionDeclaration(context);
    862953    case SEMICOLON: {
     
    9141005{
    9151006    auto parameter = parseDeconstructionPattern<DeconstructToParameters>(context);
    916     failIfFalse(parameter);
     1007    failIfFalse(parameter, "Cannot parse parameter pattern");
    9171008    TreeFormalParameterList list = context.createFormalParameterList(parameter);
    9181009    TreeFormalParameterList tail = list;
    9191010    while (consume(COMMA)) {
    9201011        parameter = parseDeconstructionPattern<DeconstructToParameters>(context);
    921         failIfFalse(parameter);
     1012        failIfFalse(parameter, "Cannot parse parameter pattern");
    9221013        tail = context.createFormalParameterList(tail, parameter);
    9231014    }
     
    9371028    m_statementDepth = 0;
    9381029    typename TreeBuilder::FunctionBodyBuilder bodyBuilder(const_cast<VM*>(m_vm), m_lexer.get());
    939     failIfFalse(parseSourceElements<CheckForStrictMode>(bodyBuilder));
     1030    failIfFalse(parseSourceElements<CheckForStrictMode>(bodyBuilder), "Cannot parse body of this function");
    9401031    return context.createFunctionBody(startLocation, tokenLocation(), startColumn, strictMode());
    9411032}
    9421033
    943 template <typename LexerType>
    944 template <FunctionRequirements requirements, bool nameIsInContainingScope, class TreeBuilder> bool Parser<LexerType>::parseFunctionInfo(TreeBuilder& context, const Identifier*& name, TreeFormalParameterList& parameters, TreeFunctionBody& body, unsigned& openBraceOffset, unsigned& closeBraceOffset, int& bodyStartLine, unsigned& bodyStartColumn)
     1034static const char* stringForFunctionMode(FunctionParseMode mode)
     1035{
     1036    switch (mode) {
     1037    case GetterMode:
     1038        return "getter";
     1039    case SetterMode:
     1040        return "setter";
     1041    case FunctionMode:
     1042        return "function";
     1043    }
     1044    RELEASE_ASSERT_NOT_REACHED();
     1045    return nullptr;
     1046}
     1047
     1048template <typename LexerType>
     1049template <FunctionRequirements requirements, FunctionParseMode mode, bool nameIsInContainingScope, class TreeBuilder> bool Parser<LexerType>::parseFunctionInfo(TreeBuilder& context, const Identifier*& name, TreeFormalParameterList& parameters, TreeFunctionBody& body, unsigned& openBraceOffset, unsigned& closeBraceOffset, int& bodyStartLine, unsigned& bodyStartColumn)
    9451050{
    9461051    AutoPopScopeRef functionScope(this, pushScope());
    9471052    functionScope->setIsFunction();
    9481053    int functionStart = m_token.m_location.startOffset;
     1054    const Identifier* lastFunctionName = m_lastFunctionName;
     1055    m_lastFunctionName = nullptr;
    9491056    if (match(IDENT)) {
    9501057        name = m_token.m_data.ident;
     1058        m_lastFunctionName = name;
    9511059        next();
    9521060        if (!nameIsInContainingScope)
    953             failIfFalseIfStrict(functionScope->declareVariable(name));
    954     } else if (requirements == FunctionNeedsName)
     1061            failIfFalseIfStrict(functionScope->declareVariable(name), "'", name->impl(), "' is not a valid ", stringForFunctionMode(mode), " name in strict mode");
     1062    } else if (requirements == FunctionNeedsName) {
     1063        if (match(OPENPAREN) && mode == FunctionMode)
     1064            semanticFail("Function statements must have a name");
     1065        semanticFailureDueToKeyword(stringForFunctionMode(mode), " name");
     1066        failDueToUnexpectedToken();
    9551067        return false;
    956     consumeOrFail(OPENPAREN);
     1068    }
     1069    if (!consume(OPENPAREN)) {
     1070        semanticFailureDueToKeyword(stringForFunctionMode(mode), " name");
     1071        failWithMessage("Expected an opening '(' before a ", stringForFunctionMode(mode), "'s parameter list");
     1072    }
    9571073    if (!match(CLOSEPAREN)) {
    9581074        parameters = parseFormalParameters(context);
    959         failIfFalse(parameters);
    960     }
    961     consumeOrFail(CLOSEPAREN);
    962     matchOrFail(OPENBRACE);
     1075        failIfFalse(parameters, "Cannot parse parameters for this ", stringForFunctionMode(mode));
     1076    }
     1077    consumeOrFail(CLOSEPAREN, "Expected a ')' or a ',' after a parameter declaration");
     1078    matchOrFail(OPENBRACE, "Expected an opening '{' at the start of a ", stringForFunctionMode(mode), " body");
    9631079   
    9641080    openBraceOffset = m_token.m_data.offset;
     
    9811097       
    9821098        functionScope->restoreFromSourceProviderCache(cachedInfo);
    983         failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo));
     1099        failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo), "Parser error");
    9841100       
    9851101        closeBraceOffset = cachedInfo->closeBraceOffset;
     
    9941110        return true;
    9951111    }
    996    
     1112    m_lastFunctionName = lastFunctionName;
    9971113    body = parseFunctionBody(context);
    998     failIfFalse(body);
     1114    failIfFalse(body, "Cannot parse the body of this ", stringForFunctionMode(mode));
    9991115    if (functionScope->strictMode() && name) {
    1000         failIfTrueWithNameAndMessage(m_vm->propertyNames->arguments == *name, "Function name", name->impl(), "is not valid in strict mode");
    1001         failIfTrueWithNameAndMessage(m_vm->propertyNames->eval == *name, "Function name", name->impl(), "is not valid in strict mode");
     1116        RELEASE_ASSERT(mode == FunctionMode);
     1117        semanticFailIfTrue(m_vm->propertyNames->arguments == *name, "'", name->impl(), "' is not a valid function name in strict mode");
     1118        semanticFailIfTrue(m_vm->propertyNames->eval == *name, "'", name->impl(), "' is not a valid function name in strict mode");
    10021119    }
    10031120    closeBraceOffset = m_token.m_data.offset;
     
    10221139    context.setFunctionStart(body, functionStart);
    10231140   
    1024     failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo));
    1025     matchOrFail(CLOSEBRACE);
     1141    failIfFalse(popScope(functionScope, TreeBuilder::NeedsFreeVariableInfo), "Parser error");
     1142    matchOrFail(CLOSEBRACE, "Expected a closing '}' after a ", stringForFunctionMode(mode), " body");
    10261143   
    10271144    if (newInfo)
     
    10451162    int bodyStartLine = 0;
    10461163    unsigned bodyStartColumn = 0;
    1047     failIfFalse((parseFunctionInfo<FunctionNeedsName, true>(context, name, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)));
    1048     failIfFalse(name);
    1049     failIfFalseIfStrict(declareVariable(name));
     1164    failIfFalse((parseFunctionInfo<FunctionNeedsName, FunctionMode, true>(context, name, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)), "Cannot parse this function");
     1165    failIfFalse(name, "Function statements must have a name");
     1166    failIfFalseIfStrict(declareVariable(name), "Cannot declare a function named '", name->impl(), "' in strict mode");
    10501167    return context.createFuncDeclStatement(location, name, body, parameters, openBraceOffset, closeBraceOffset, bodyStartLine, m_lastTokenEndPosition.line, bodyStartColumn);
    10511168}
     
    10811198            // ignore any labels we might have accumulated.
    10821199            TreeExpression expression = parseExpression(context);
    1083             failIfFalse(expression);
    1084             failIfFalse(autoSemiColon());
     1200            failIfFalse(expression, "Cannot parse expression statement");
     1201            if (!autoSemiColon())
     1202                failDueToUnexpectedToken();
    10851203            return context.createExprStatement(location, expression, start, m_lastTokenEndPosition.line);
    10861204        }
     
    10881206        JSTextPosition end = tokenEndPosition();
    10891207        next();
    1090         consumeOrFail(COLON);
     1208        consumeOrFail(COLON, "Labels must be followed by a ':'");
    10911209        if (!m_syntaxAlreadyValidated) {
    10921210            // This is O(N^2) over the current list of consecutive labels, but I
    10931211            // have never seen more than one label in a row in the real world.
    10941212            for (size_t i = 0; i < labels.size(); i++)
    1095                 failIfTrue(ident->impl() == labels[i].m_ident->impl());
    1096             failIfTrue(getLabel(ident));
     1213                failIfTrue(ident->impl() == labels[i].m_ident->impl(), "Attempted to redeclare the label '", ident->impl(), "'");
     1214            failIfTrue(getLabel(ident), "Cannot find scope for the label '", ident->impl(), "'");
    10971215            labels.append(LabelInfo(ident, start, end));
    10981216        }
     
    11191237            popLabel();
    11201238    }
    1121     failIfFalse(statement);
     1239    failIfFalse(statement, "Cannot parse statement");
    11221240    for (size_t i = 0; i < labels.size(); i++) {
    11231241        const LabelInfo& info = labels[labels.size() - i - 1];
     
    11331251    JSTokenLocation location(tokenLocation());
    11341252    TreeExpression expression = parseExpression(context);
    1135     failIfFalse(expression);
    1136     failIfFalse(autoSemiColon());
     1253    failIfFalse(expression, "Cannot parse expression statement");
     1254    failIfFalse(autoSemiColon(), "Parse error");
    11371255    return context.createExprStatement(location, expression, start, m_lastTokenEndPosition.line);
    11381256}
     
    11451263    int start = tokenLine();
    11461264    next();
    1147 
    1148     consumeOrFail(OPENPAREN);
     1265    handleProductionOrFail(OPENPAREN, "(", "start", "'if' condition");
    11491266
    11501267    TreeExpression condition = parseExpression(context);
    1151     failIfFalse(condition);
     1268    failIfFalse(condition, "Expected a expression as the condition for an if statement");
    11521269    int end = tokenLine();
    1153     consumeOrFail(CLOSEPAREN);
     1270    handleProductionOrFail(CLOSEPAREN, ")", "end", "'if' condition");
    11541271
    11551272    const Identifier* unused = 0;
    11561273    TreeStatement trueBlock = parseStatement(context, unused);
    1157     failIfFalse(trueBlock);
     1274    failIfFalse(trueBlock, "Expected a statement as the body of an if block");
    11581275
    11591276    if (!match(ELSE))
     
    11711288            const Identifier* unused = 0;
    11721289            TreeStatement block = parseStatement(context, unused);
    1173             failIfFalse(block);
     1290            failIfFalse(block, "Expected a statement as the body of an else block");
    11741291            statementStack.append(block);
    11751292            trailingElse = true;
     
    11781295        int innerStart = tokenLine();
    11791296        next();
    1180 
    1181         consumeOrFail(OPENPAREN);
     1297       
     1298        handleProductionOrFail(OPENPAREN, "(", "start", "'if' condition");
    11821299
    11831300        TreeExpression innerCondition = parseExpression(context);
    1184         failIfFalse(innerCondition);
     1301        failIfFalse(innerCondition, "Expected a expression as the condition for an if statement");
    11851302        int innerEnd = tokenLine();
    1186         consumeOrFail(CLOSEPAREN);
     1303        handleProductionOrFail(CLOSEPAREN, ")", "end", "'if' condition");
    11871304        const Identifier* unused = 0;
    11881305        TreeStatement innerTrueBlock = parseStatement(context, unused);
    1189         failIfFalse(innerTrueBlock);
     1306        failIfFalse(innerTrueBlock, "Expected a statement as the body of an if block");
    11901307        tokenLocationStack.append(tempLocation);
    11911308        exprStack.append(innerCondition);
     
    12291346    JSTokenLocation location(tokenLocation());
    12301347    TreeExpression node = parseAssignmentExpression(context);
    1231     failIfFalse(node);
     1348    failIfFalse(node, "Cannot parse expression");
    12321349    if (!match(COMMA))
    12331350        return node;
     
    12361353    m_nonLHSCount++;
    12371354    TreeExpression right = parseAssignmentExpression(context);
    1238     failIfFalse(right);
     1355    failIfFalse(right, "Cannot parse expression in a comma expression");
    12391356    typename TreeBuilder::Comma commaNode = context.createCommaExpr(location, node, right);
    12401357    while (match(COMMA)) {
    12411358        next(TreeBuilder::DontBuildStrings);
    12421359        right = parseAssignmentExpression(context);
    1243         failIfFalse(right);
     1360        failIfFalse(right, "Cannot parse expression in a comma expression");
    12441361        context.appendToComma(commaNode, right);
    12451362    }
     
    12561373    int initialNonLHSCount = m_nonLHSCount;
    12571374    TreeExpression lhs = parseConditionalExpression(context);
    1258     failIfFalse(lhs);
    1259     if (initialNonLHSCount != m_nonLHSCount)
     1375    failIfFalse(lhs, "Cannot parse expression");
     1376    if (initialNonLHSCount != m_nonLHSCount) {
     1377        if (m_token.m_type >= EQUAL && m_token.m_type <= OREQUAL)
     1378            semanticFail("Left hand sign of operator '", getToken(), "' must be a reference");
     1379
    12601380        return lhs;
     1381    }
    12611382   
    12621383    int assignmentStack = 0;
     
    12871408        next(TreeBuilder::DontBuildStrings);
    12881409        if (strictMode() && m_lastIdentifier && context.isResolve(lhs)) {
    1289             failIfTrueIfStrictWithMessage(m_vm->propertyNames->eval == *m_lastIdentifier, "'eval' cannot be modified in strict mode");
    1290             failIfTrueIfStrictWithMessage(m_vm->propertyNames->arguments == *m_lastIdentifier, "'arguments' cannot be modified in strict mode");
     1410            failIfTrueIfStrict(m_vm->propertyNames->eval == *m_lastIdentifier, "Cannot modify 'eval' in strict mode");
     1411            failIfTrueIfStrict(m_vm->propertyNames->arguments == *m_lastIdentifier, "Cannot modify 'arguments' in strict mode");
    12911412            declareWrite(m_lastIdentifier);
    12921413            m_lastIdentifier = 0;
    12931414        }
    12941415        lhs = parseAssignmentExpression(context);
    1295         failIfFalse(lhs);
    1296         if (initialNonLHSCount != m_nonLHSCount)
     1416        failIfFalse(lhs, "Cannot parse the right hand side of an assignment expression");
     1417        if (initialNonLHSCount != m_nonLHSCount) {
     1418            if (m_token.m_type >= EQUAL && m_token.m_type <= OREQUAL)
     1419                semanticFail("Left hand sign of operator '", getToken(), "' must be a reference");
    12971420            break;
     1421        }
    12981422    }
    12991423end:
     
    13151439    JSTokenLocation location(tokenLocation());
    13161440    TreeExpression cond = parseBinaryExpression(context);
    1317     failIfFalse(cond);
     1441    failIfFalse(cond, "Cannot parse expression");
    13181442    if (!match(QUESTION))
    13191443        return cond;
     
    13221446    next(TreeBuilder::DontBuildStrings);
    13231447    TreeExpression lhs = parseAssignmentExpression(context);
    1324     consumeOrFailWithFlags(COLON, TreeBuilder::DontBuildStrings);
     1448    failIfFalse(lhs, "Cannot parse left hand side of ternary operator");
     1449    consumeOrFailWithFlags(COLON, TreeBuilder::DontBuildStrings, "Expected ':' in ternary operator");
    13251450   
    13261451    TreeExpression rhs = parseAssignmentExpression(context);
    1327     failIfFalse(rhs);
     1452    failIfFalse(rhs, "Cannot parse right hand side of ternary operator");
    13281453    return context.createConditionalExpr(location, cond, lhs, rhs);
    13291454}
     
    13541479        int initialAssignments = m_assignmentCount;
    13551480        TreeExpression current = parseUnaryExpression(context);
    1356         failIfFalse(current);
     1481        failIfFalse(current, "Cannot parse expression");
    13571482       
    13581483        context.appendBinaryExpressionInfo(operandStackDepth, current, exprStart, lastTokenEndPosition(), lastTokenEndPosition(), initialAssignments != m_assignmentCount);
     
    14061531            next();
    14071532            TreeExpression node = parseAssignmentExpression(context);
    1408             failIfFalse(node);
     1533            failIfFalse(node, "Cannot parse expression for property declaration");
    14091534            return context.template createProperty<complete>(ident, node, PropertyNode::Constant);
    14101535        }
    1411         failIfFalse(wasIdent);
     1536        failIfFalse(wasIdent, "Expected an identifier as property name");
    14121537        const Identifier* accessorName = 0;
    14131538        TreeFormalParameterList parameters = 0;
     
    14231548            type = PropertyNode::Setter;
    14241549        else
    1425             fail();
     1550            failWithMessage("Expected a ':' following the property name '", ident->impl(), "'");
    14261551        const Identifier* stringPropertyName = 0;
    14271552        double numericPropertyName = 0;
     
    14311556            numericPropertyName = m_token.m_data.doubleValue;
    14321557        else
    1433             fail();
     1558            failDueToUnexpectedToken();
    14341559        JSTokenLocation location(tokenLocation());
    14351560        next();
    1436         failIfFalse((parseFunctionInfo<FunctionNoRequirements, false>(context, accessorName, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)));
     1561        if (type == PropertyNode::Getter) {
     1562            failIfFalse(match(OPENPAREN), "Expected a parameter list for getter definition");
     1563            failIfFalse((parseFunctionInfo<FunctionNoRequirements, GetterMode, false>(context, accessorName, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)), "Cannot parse getter definition");
     1564        } else {
     1565            failIfFalse(match(OPENPAREN), "Expected a parameter list for setter definition");
     1566            failIfFalse((parseFunctionInfo<FunctionNoRequirements, SetterMode, false>(context, accessorName, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)), "Cannot parse setter definition");
     1567        }
    14371568        if (stringPropertyName)
    14381569            return context.template createGetterOrSetterProperty<complete>(location, type, stringPropertyName, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, m_lastTokenEndPosition.line, bodyStartColumn);
     
    14421573        double propertyName = m_token.m_data.doubleValue;
    14431574        next();
    1444         consumeOrFail(COLON);
     1575        consumeOrFail(COLON, "Expected ':' after property name");
    14451576        TreeExpression node = parseAssignmentExpression(context);
    1446         failIfFalse(node);
     1577        failIfFalse(node, "Cannot parse expression for property declaration");
    14471578        return context.template createProperty<complete>(const_cast<VM*>(m_vm), propertyName, node, PropertyNode::Constant);
    14481579    }
     
    14501581        next();
    14511582        auto propertyName = parseExpression(context);
    1452         failIfFalse(propertyName);
    1453         consumeOrFail(CLOSEBRACKET);
    1454         consumeOrFail(COLON);
     1583        failIfFalse(propertyName, "Cannot parse computed property name");
     1584       
     1585        handleProductionOrFail(CLOSEBRACKET, "]", "end", "computed property name");
     1586        consumeOrFail(COLON, "Expected ':' after property name");
    14551587        TreeExpression node = parseAssignmentExpression(context);
    1456         failIfFalse(node);
     1588        failIfFalse(node, "Cannot parse expression for property declaration");
    14571589        return context.template createProperty<complete>(const_cast<VM*>(m_vm), propertyName, node, PropertyNode::Constant);
    14581590    }
    14591591    default:
    1460         failIfFalse(m_token.m_type & KeywordTokenFlag);
     1592        failIfFalse(m_token.m_type & KeywordTokenFlag, "Expected a property name");
    14611593        goto namedProperty;
    14621594    }
     
    14701602    unsigned oldLastLineNumber = m_lexer->lastLineNumber();
    14711603    unsigned oldLineNumber = m_lexer->lineNumber();
    1472     consumeOrFailWithFlags(OPENBRACE, TreeBuilder::DontBuildStrings);
     1604    consumeOrFailWithFlags(OPENBRACE, TreeBuilder::DontBuildStrings, "Expected opening '{' at the start of an object literal");
    14731605    JSTokenLocation location(tokenLocation());
    14741606
     
    14811613   
    14821614    TreeProperty property = parseProperty<false>(context);
    1483     failIfFalse(property);
     1615    failIfFalse(property, "Cannot parse object literal property");
    14841616    if (!m_syntaxAlreadyValidated && context.getType(property) != PropertyNode::Constant) {
    14851617        m_lexer->setOffset(startOffset, oldLineStartOffset);
     
    14981630        JSTokenLocation propertyLocation(tokenLocation());
    14991631        property = parseProperty<false>(context);
    1500         failIfFalse(property);
     1632        failIfFalse(property, "Cannot parse object literal property");
    15011633        if (!m_syntaxAlreadyValidated && context.getType(property) != PropertyNode::Constant) {
    15021634            m_lexer->setOffset(startOffset, oldLineStartOffset);
     
    15101642
    15111643    location = tokenLocation();
    1512     consumeOrFail(CLOSEBRACE);
     1644    handleProductionOrFail(CLOSEBRACE, "}", "end", "object literal");
    15131645   
    15141646    m_nonLHSCount = oldNonLHSCount;
     
    15201652template <class TreeBuilder> TreeExpression Parser<LexerType>::parseStrictObjectLiteral(TreeBuilder& context)
    15211653{
    1522     consumeOrFail(OPENBRACE);
     1654    consumeOrFail(OPENBRACE, "Expected opening '{' at the start of an object literal");
    15231655   
    15241656    int oldNonLHSCount = m_nonLHSCount;
     
    15311663   
    15321664    TreeProperty property = parseProperty<true>(context);
    1533     failIfFalse(property);
     1665    failIfFalse(property, "Cannot parse object literal property");
    15341666   
    15351667    typedef HashMap<RefPtr<StringImpl>, unsigned, IdentifierRepHash> ObjectValidationMap;
     
    15481680        JSTokenLocation propertyLocation(tokenLocation());
    15491681        property = parseProperty<true>(context);
    1550         failIfFalse(property);
     1682        failIfFalse(property, "Cannot parse object literal property");
    15511683        if (!m_syntaxAlreadyValidated && context.getName(property)) {
    15521684            ObjectValidationMap::AddResult propertyEntry = objectValidator.add(context.getName(property)->impl(), context.getType(property));
    15531685            if (!propertyEntry.isNewEntry) {
    1554                 failIfTrue(propertyEntry.iterator->value == PropertyNode::Constant);
    1555                 failIfTrue(context.getType(property) == PropertyNode::Constant);
    1556                 failIfTrue(context.getType(property) & propertyEntry.iterator->value);
     1686                semanticFailIfTrue(propertyEntry.iterator->value == PropertyNode::Constant, "Attempted to redefine property '", propertyEntry.iterator->key.get(), "'");
     1687                semanticFailIfTrue(context.getType(property) == PropertyNode::Constant, "Attempted to redefine property '", propertyEntry.iterator->key.get(), "'");
     1688                semanticFailIfTrue(context.getType(property) & propertyEntry.iterator->value, "Attempted to redefine property '", propertyEntry.iterator->key.get(), "'");
    15571689                propertyEntry.iterator->value |= context.getType(property);
    15581690            }
     
    15621694
    15631695    location = tokenLocation();
    1564     consumeOrFail(CLOSEBRACE);
     1696    handleProductionOrFail(CLOSEBRACE, "}", "end", "object literal");
    15651697
    15661698    m_nonLHSCount = oldNonLHSCount;
     
    15721704template <class TreeBuilder> TreeExpression Parser<LexerType>::parseArrayLiteral(TreeBuilder& context)
    15731705{
    1574     consumeOrFailWithFlags(OPENBRACKET, TreeBuilder::DontBuildStrings);
     1706    consumeOrFailWithFlags(OPENBRACKET, TreeBuilder::DontBuildStrings, "Expected an opening '[' at the beginning of an array literal");
    15751707   
    15761708    int oldNonLHSCount = m_nonLHSCount;
     
    15941726        next();
    15951727        auto spreadExpr = parseAssignmentExpression(context);
    1596         failIfFalse(spreadExpr);
     1728        failIfFalse(spreadExpr, "Cannot parse subject of a spread operation");
    15971729        elem = context.createSpreadExpression(spreadLocation, spreadExpr, start, divot, m_lastTokenEndPosition);
    15981730    } else
    15991731        elem = parseAssignmentExpression(context);
    1600     failIfFalse(elem);
     1732    failIfFalse(elem, "Cannot parse array literal element");
    16011733    typename TreeBuilder::ElementList elementList = context.createElementList(elisions, elem);
    16021734    typename TreeBuilder::ElementList tail = elementList;
     
    16221754            next();
    16231755            TreeExpression elem = parseAssignmentExpression(context);
    1624             failIfFalse(elem);
     1756            failIfFalse(elem, "Cannot parse subject of a spread operation");
    16251757            auto spread = context.createSpreadExpression(spreadLocation, elem, start, divot, m_lastTokenEndPosition);
    16261758            tail = context.createElementList(tail, elisions, spread);
     
    16281760        }
    16291761        TreeExpression elem = parseAssignmentExpression(context);
    1630         failIfFalse(elem);
     1762        failIfFalse(elem, "Cannot parse array literal element");
    16311763        tail = context.createElementList(tail, elisions, elem);
    16321764    }
    16331765
    16341766    JSTokenLocation location(tokenLocation());
    1635     consumeOrFail(CLOSEBRACKET);
     1767    if (!consume(CLOSEBRACKET)) {
     1768        failIfFalse(match(DOTDOTDOT), "Expected either a closing ']' or a ',' following an array element");
     1769        semanticFail("The '...' operator should come before a target expression");
     1770    }
    16361771   
    16371772    m_nonLHSCount = oldNonLHSCount;
     
    16561791        TreeExpression result = parseExpression(context);
    16571792        m_nonLHSCount = oldNonLHSCount;
    1658         consumeOrFail(CLOSEPAREN);
    1659        
     1793        handleProductionOrFail(CLOSEPAREN, ")", "end", "compound expression");
    16601794        return result;
    16611795    }
     
    17071841        const Identifier* flags;
    17081842        if (match(DIVEQUAL))
    1709             failIfFalse(m_lexer->scanRegExp(pattern, flags, '='));
     1843            failIfFalse(m_lexer->scanRegExp(pattern, flags, '='), "Invalid regular expression");
    17101844        else
    1711             failIfFalse(m_lexer->scanRegExp(pattern, flags));
     1845            failIfFalse(m_lexer->scanRegExp(pattern, flags), "Invalid regular expression");
    17121846       
    17131847        JSTextPosition start = tokenStartPosition();
     
    17171851        if (!re) {
    17181852            const char* yarrErrorMsg = Yarr::checkSyntax(pattern->string());
    1719             failWithMessage(yarrErrorMsg);
     1853            regexFail(yarrErrorMsg);
    17201854        }
    17211855        return re;
    17221856    }
    17231857    default:
    1724         fail();
     1858        failDueToUnexpectedToken();
    17251859    }
    17261860}
     
    17291863template <class TreeBuilder> TreeArguments Parser<LexerType>::parseArguments(TreeBuilder& context, SpreadMode mode)
    17301864{
    1731     consumeOrFailWithFlags(OPENPAREN, TreeBuilder::DontBuildStrings);
     1865    consumeOrFailWithFlags(OPENPAREN, TreeBuilder::DontBuildStrings, "Expected opening '(' at start of argument list");
    17321866    JSTokenLocation location(tokenLocation());
    17331867    if (match(CLOSEPAREN)) {
     
    17431877        auto end = m_lastTokenEndPosition;
    17441878        if (!spreadExpr)
    1745             failWithMessage("Invalid spread expression.");
    1746         consumeOrFail(CLOSEPAREN);
     1879            failWithMessage("Cannot parse spread expression");
     1880        if (!consume(CLOSEPAREN)) {
     1881            if (match(COMMA))
     1882                semanticFail("Spread operator may only be applied to the last argument passed to a function");
     1883            handleProductionOrFail(CLOSEPAREN, ")", "end", "argument list");
     1884        }
    17471885        auto spread = context.createSpreadExpression(spreadLocation, spreadExpr, start, divot, end);
    17481886        TreeArgumentsList argList = context.createArgumentsList(location, spread);
     
    17501888    }
    17511889    TreeExpression firstArg = parseAssignmentExpression(context);
    1752     failIfFalse(firstArg);
     1890    failIfFalse(firstArg, "Cannot parse function argument");
    17531891   
    17541892    TreeArgumentsList argList = context.createArgumentsList(location, firstArg);
     
    17581896        next(TreeBuilder::DontBuildStrings);
    17591897        TreeExpression arg = parseAssignmentExpression(context);
    1760         failIfFalse(arg);
     1898        failIfFalse(arg, "Cannot parse function argument");
    17611899        tail = context.createArgumentsList(argumentLocation, tail, arg);
    17621900    }
    1763     consumeOrFail(CLOSEPAREN);
     1901    semanticFailIfTrue(match(DOTDOTDOT), "The '...' operator should come before the target expression");
     1902    handleProductionOrFail(CLOSEPAREN, ")", "end", "argument list");
    17641903    return context.createArguments(argList);
    17651904}
     
    17871926        location = tokenLocation();
    17881927        next();
    1789         failIfFalse((parseFunctionInfo<FunctionNoRequirements, false>(context, name, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)));
     1928        failIfFalse((parseFunctionInfo<FunctionNoRequirements, FunctionMode, false>(context, name, parameters, body, openBraceOffset, closeBraceOffset, bodyStartLine, bodyStartColumn)), "Cannot parse function expression");
    17901929        base = context.createFunctionExpr(location, name, body, parameters, openBraceOffset, closeBraceOffset, bodyStartLine, m_lastTokenEndPosition.line, bodyStartColumn);
    17911930    } else
    17921931        base = parsePrimaryExpression(context);
    17931932   
    1794     failIfFalse(base);
     1933    failIfFalse(base, "Cannot parse base expression");
    17951934    while (true) {
    17961935        location = tokenLocation();
     
    18031942            int initialAssignments = m_assignmentCount;
    18041943            TreeExpression property = parseExpression(context);
    1805             failIfFalse(property);
     1944            failIfFalse(property, "Cannot parse subscript expression");
    18061945            base = context.createBracketAccess(location, base, property, initialAssignments != m_assignmentCount, expressionStart, expressionEnd, tokenEndPosition());
    1807             consumeOrFail(CLOSEBRACKET);
     1946            handleProductionOrFail(CLOSEBRACKET, "]", "end", "subscript expression");
    18081947            m_nonLHSCount = nonLHSCount;
    18091948            break;
     
    18161955                JSTextPosition expressionEnd = lastTokenEndPosition();
    18171956                TreeArguments arguments = parseArguments(context, DontAllowSpread);
    1818                 failIfFalse(arguments);
     1957                failIfFalse(arguments, "Cannot parse call arguments");
    18191958                base = context.createNewExpr(location, base, arguments, expressionStart, expressionEnd, lastTokenEndPosition());
    18201959            } else {
    18211960                JSTextPosition expressionEnd = lastTokenEndPosition();
    18221961                TreeArguments arguments = parseArguments(context, AllowSpread);
    1823                 failIfFalse(arguments);
     1962                failIfFalse(arguments, "Cannot parse call arguments");
    18241963                base = context.makeFunctionCallNode(location, base, arguments, expressionStart, expressionEnd, lastTokenEndPosition());
    18251964            }
     
    18311970            JSTextPosition expressionEnd = lastTokenEndPosition();
    18321971            nextExpectIdentifier(LexerFlagsIgnoreReservedWords | TreeBuilder::DontBuildKeywords);
    1833             matchOrFail(IDENT);
     1972            matchOrFail(IDENT, "Expected a property name after '.'");
    18341973            base = context.createDotAccess(location, base, m_token.m_data.ident, expressionStart, expressionEnd, tokenEndPosition());
    18351974            next();
     
    18441983        base = context.createNewExpr(location, base, expressionStart, lastTokenEndPosition());
    18451984    return base;
     1985}
     1986
     1987static const char* operatorString(bool prefix, unsigned tok)
     1988{
     1989    switch (tok) {
     1990    case MINUSMINUS:
     1991    case AUTOMINUSMINUS:
     1992        return prefix ? "prefix-decrement" : "decrement";
     1993
     1994    case PLUSPLUS:
     1995    case AUTOPLUSPLUS:
     1996        return prefix ? "prefix-increment" : "increment";
     1997
     1998    case EXCLAMATION:
     1999        return "logical-not";
     2000
     2001    case TILDE:
     2002        return "bitwise-not";
     2003   
     2004    case TYPEOF:
     2005        return "typeof";
     2006   
     2007    case VOIDTOKEN:
     2008        return "void";
     2009   
     2010    case DELETETOKEN:
     2011        return "delete";
     2012    }
     2013    RELEASE_ASSERT_NOT_REACHED();
     2014    return "error";
    18462015}
    18472016
     
    18542023    bool modifiesExpr = false;
    18552024    bool requiresLExpr = false;
     2025    unsigned lastOperator = 0;
    18562026    while (isUnaryOp(m_token.m_type)) {
    18572027        if (strictMode()) {
     
    18612031            case AUTOPLUSPLUS:
    18622032            case AUTOMINUSMINUS:
    1863                 failIfTrue(requiresLExpr);
     2033                semanticFailIfTrue(requiresLExpr, "The ", operatorString(true, lastOperator), " operator requires a reference expression");
    18642034                modifiesExpr = true;
    18652035                requiresLExpr = true;
    18662036                break;
    18672037            case DELETETOKEN:
    1868                 failIfTrue(requiresLExpr);
     2038                semanticFailIfTrue(requiresLExpr, "The ", operatorString(true, lastOperator), " operator requires a reference expression");
    18692039                requiresLExpr = true;
    18702040                break;
    18712041            default:
    1872                 failIfTrue(requiresLExpr);
     2042                semanticFailIfTrue(requiresLExpr, "The ", operatorString(true, lastOperator), " operator requires a reference expression");
    18732043                break;
    18742044            }
    18752045        }
     2046        lastOperator = m_token.m_type;
    18762047        m_nonLHSCount++;
    18772048        context.appendUnaryToken(tokenStackDepth, m_token.m_type, tokenStartPosition());
     
    18832054    JSTokenLocation location(tokenLocation());
    18842055    TreeExpression expr = parseMemberExpression(context);
    1885     failIfFalse(expr);
     2056    if (!expr) {
     2057        if (lastOperator)
     2058            failWithMessage("Cannot parse subexpression of ", operatorString(true, lastOperator), "operator");
     2059        failWithMessage("Cannot parse member expression");
     2060    }
    18862061    bool isEvalOrArguments = false;
    18872062    if (strictMode() && !m_syntaxAlreadyValidated) {
     
    18892064            isEvalOrArguments = *m_lastIdentifier == m_vm->propertyNames->eval || *m_lastIdentifier == m_vm->propertyNames->arguments;
    18902065    }
    1891     failIfTrueIfStrictWithNameAndMessage(isEvalOrArguments && modifiesExpr, "'", m_lastIdentifier->impl(), "' cannot be modified in strict mode");
     2066    failIfTrueIfStrict(isEvalOrArguments && modifiesExpr, "Cannot modify '", m_lastIdentifier->impl(), "' in strict mode");
    18922067    switch (m_token.m_type) {
    18932068    case PLUSPLUS:
     
    18962071        expr = context.makePostfixNode(location, expr, OpPlusPlus, subExprStart, lastTokenEndPosition(), tokenEndPosition());
    18972072        m_assignmentCount++;
    1898         failIfTrueIfStrictWithNameAndMessage(isEvalOrArguments, "'", m_lastIdentifier->impl(), "' cannot be modified in strict mode");
    1899         failIfTrueIfStrict(requiresLExpr);
     2073        failIfTrueIfStrict(isEvalOrArguments, "Cannot modify '", m_lastIdentifier->impl(), "' in strict mode");
     2074        semanticFailIfTrue(requiresLExpr, "The ", operatorString(false, lastOperator), " operator requires a reference expression");
     2075        lastOperator = PLUSPLUS;
    19002076        next();
    19012077        break;
     
    19052081        expr = context.makePostfixNode(location, expr, OpMinusMinus, subExprStart, lastTokenEndPosition(), tokenEndPosition());
    19062082        m_assignmentCount++;
    1907         failIfTrueIfStrictWithNameAndMessage(isEvalOrArguments, "'", m_lastIdentifier->impl(), "' cannot be modified in strict mode");
    1908         failIfTrueIfStrict(requiresLExpr);
     2083        failIfTrueIfStrict(isEvalOrArguments, "'", m_lastIdentifier->impl(), "' cannot be modified in strict mode");
     2084        semanticFailIfTrue(requiresLExpr, "The ", operatorString(false, lastOperator), " operator requires a reference expression");
     2085        lastOperator = PLUSPLUS;
    19092086        next();
    19102087        break;
     
    19512128            break;
    19522129        case DELETETOKEN:
    1953             failIfTrueIfStrictWithNameAndMessage(context.isResolve(expr), "Cannot delete unqualified property", m_lastIdentifier->impl(), "in strict mode");
     2130            failIfTrueIfStrict(context.isResolve(expr), "Cannot delete unqualified property '", m_lastIdentifier->impl(), "' in strict mode");
    19542131            expr = context.makeDeleteNode(location, expr, context.unaryTokenStackLastStart(tokenStackDepth), end, end);
    19552132            break;
     
    19642141}
    19652142
     2143
     2144template <typename LexerType> void Parser<LexerType>::printUnexpectedTokenText(WTF::PrintStream& out)
     2145{
     2146    switch (m_token.m_type) {
     2147    case EOFTOK:
     2148        out.print("Unexpected end of script");
     2149        return;
     2150    case UNTERMINATED_IDENTIFIER_ESCAPE_ERRORTOK:
     2151    case UNTERMINATED_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
     2152        out.print("Incomplete unicode escape in identifier: '", getToken(), "'");
     2153        return;
     2154    case UNTERMINATED_MULTILINE_COMMENT_ERRORTOK:
     2155        out.print("Unterminated multiline comment");
     2156        return;
     2157    case UNTERMINATED_NUMERIC_LITERAL_ERRORTOK:
     2158        out.print("Unterminated numeric literal '", getToken(), "'");
     2159        return;
     2160    case UNTERMINATED_STRING_LITERAL_ERRORTOK:
     2161        out.print("Unterminated string literal '", getToken(), "'");
     2162        return;
     2163    case INVALID_IDENTIFIER_ESCAPE_ERRORTOK:
     2164        out.print("Invalid escape in identifier: '", getToken(), "'");
     2165        return;
     2166    case INVALID_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
     2167        out.print("Invalid unicode escape in identifier: '", getToken(), "'");
     2168        return;
     2169    case INVALID_NUMERIC_LITERAL_ERRORTOK:
     2170        out.print("Invalid numeric literal: '", getToken(), "'");
     2171        return;
     2172    case INVALID_OCTAL_NUMBER_ERRORTOK:
     2173        out.print("Invalid use of octal: '", getToken(), "'");
     2174        return;
     2175    case INVALID_STRING_LITERAL_ERRORTOK:
     2176        out.print("Invalid string literal: '", getToken(), "'");
     2177        return;
     2178    case ERRORTOK:
     2179        out.print("Unrecognized token '", getToken(), "'");
     2180        return;
     2181    case STRING:
     2182        out.print("Unexpected string literal ", getToken());
     2183        return;
     2184    case NUMBER:
     2185        out.print("Unexpected number '", getToken(), "'");
     2186        return;
     2187   
     2188    case RESERVED_IF_STRICT:
     2189        out.print("Unexpected use of reserved word '", getToken(), "' in strict mode");
     2190        return;
     2191       
     2192    case RESERVED:
     2193        out.print("Unexpected use of reserved word '", getToken(), "'");
     2194        return;
     2195           
     2196    case IDENT:
     2197        out.print("Unexpected identifier '", getToken(), "'");
     2198        return;
     2199
     2200    default:
     2201        break;
     2202    }
     2203
     2204    if (m_token.m_type & KeywordTokenFlag) {
     2205        out.print("Unexpected keyword '", getToken(), "'");
     2206        return;
     2207    }
     2208   
     2209    out.print("Unexpected token '", getToken(), "'");
     2210}
     2211
    19662212// Instantiate the two flavors of Parser we need instead of putting most of this file in Parser.h
    19672213template class Parser<Lexer<LChar>>;
    19682214template class Parser<Lexer<UChar>>;
    1969 
     2215   
    19702216} // namespace JSC
  • trunk/Source/JavaScriptCore/parser/Parser.h

    r157653 r158014  
    8080enum SourceElementsMode { CheckForStrictMode, DontCheckForStrictMode };
    8181enum FunctionRequirements { FunctionNoRequirements, FunctionNeedsName };
     82enum FunctionParseMode { FunctionMode, GetterMode, SetterMode };
    8283enum DeconstructionKind {
    8384    DeconstructToVariables,
     
    210211    }
    211212
     213    bool hasDeclaredVariable(const Identifier& ident)
     214    {
     215        return m_declaredVariables.contains(ident.impl());
     216    }
     217   
     218    bool hasDeclaredParameter(const Identifier& ident)
     219    {
     220        return m_declaredParameters.contains(ident.impl()) || m_declaredVariables.contains(ident.impl());
     221    }
     222   
    212223    void declareWrite(const Identifier* ident)
    213224    {
     
    490501    }
    491502   
     503    NEVER_INLINE bool hasDeclaredVariable(const Identifier& ident)
     504    {
     505        unsigned i = m_scopeStack.size() - 1;
     506        ASSERT(i < m_scopeStack.size());
     507        while (!m_scopeStack[i].allowsNewDecls()) {
     508            i--;
     509            ASSERT(i < m_scopeStack.size());
     510        }
     511        return m_scopeStack[i].hasDeclaredVariable(ident);
     512    }
     513   
     514    NEVER_INLINE bool hasDeclaredParameter(const Identifier& ident)
     515    {
     516        unsigned i = m_scopeStack.size() - 1;
     517        ASSERT(i < m_scopeStack.size());
     518        while (!m_scopeStack[i].allowsNewDecls()) {
     519            i--;
     520            ASSERT(i < m_scopeStack.size());
     521        }
     522        return m_scopeStack[i].hasDeclaredParameter(ident);
     523    }
     524   
    492525    void declareWrite(const Identifier* ident)
    493526    {
     
    545578        return result;
    546579    }
    547    
     580
     581    void printUnexpectedTokenText(WTF::PrintStream&);
    548582    ALWAYS_INLINE String getToken() {
    549583        SourceProvider* sourceProvider = m_source->provider();
     
    596630    }
    597631
    598     const char* getTokenName(JSTokenType tok)
    599     {
    600         switch (tok) {
    601         case NULLTOKEN:
    602             return "null";
    603         case TRUETOKEN:
    604             return "true";
    605         case FALSETOKEN:
    606             return "false";
    607         case BREAK:
    608             return "break";
    609         case CASE:
    610             return "case";
    611         case DEFAULT:
    612             return "default";
    613         case FOR:
    614             return "for";
    615         case NEW:
    616             return "new";
    617         case VAR:
    618             return "var";
    619         case CONSTTOKEN:
    620             return "const";
    621         case CONTINUE:
    622             return "continue";
    623         case FUNCTION:
    624             return "function";
    625         case IF:
    626             return "if";
    627         case THISTOKEN:
    628             return "this";
    629         case DO:
    630             return "do";
    631         case WHILE:
    632             return "while";
    633         case SWITCH:
    634             return "switch";
    635         case WITH:
    636             return "with";
    637         case THROW:
    638             return "throw";
    639         case TRY:
    640             return "try";
    641         case CATCH:
    642             return "catch";
    643         case FINALLY:
    644             return "finally";
    645         case DEBUGGER:
    646             return "debugger";
    647         case ELSE:
    648             return "else";
    649         case OPENBRACE:
    650             return "{";
    651         case CLOSEBRACE:
    652             return "}";
    653         case OPENPAREN:
    654             return "(";
    655         case CLOSEPAREN:
    656             return ")";
    657         case OPENBRACKET:
    658             return "[";
    659         case CLOSEBRACKET:
    660             return "]";
    661         case COMMA:
    662             return ",";
    663         case QUESTION:
    664             return "?";
    665         case SEMICOLON:
    666             return ";";
    667         case COLON:
    668             return ":";
    669         case DOT:
    670             return ".";
    671         case EQUAL:
    672             return "=";
    673         case PLUSEQUAL:
    674             return "+=";
    675         case MINUSEQUAL:
    676             return "-=";
    677         case MULTEQUAL:
    678             return "*=";
    679         case DIVEQUAL:
    680             return "/=";
    681         case LSHIFTEQUAL:
    682             return "<<=";
    683         case RSHIFTEQUAL:
    684             return ">>=";
    685         case URSHIFTEQUAL:
    686             return ">>>=";
    687         case ANDEQUAL:
    688             return "&=";
    689         case MODEQUAL:
    690             return "%=";
    691         case XOREQUAL:
    692             return "^=";
    693         case OREQUAL:
    694             return "|=";
    695         case AUTOPLUSPLUS:
    696         case PLUSPLUS:
    697             return "++";
    698         case AUTOMINUSMINUS:
    699         case MINUSMINUS:
    700             return "--";
    701         case EXCLAMATION:
    702             return "!";
    703         case TILDE:
    704             return "~";
    705         case TYPEOF:
    706             return "typeof";
    707         case VOIDTOKEN:
    708             return "void";
    709         case DELETETOKEN:
    710             return "delete";
    711         case OR:
    712             return "||";
    713         case AND:
    714             return "&&";
    715         case BITOR:
    716             return "|";
    717         case BITXOR:
    718             return "^";
    719         case BITAND:
    720             return "&";
    721         case EQEQ:
    722             return "==";
    723         case NE:
    724             return "!=";
    725         case STREQ:
    726             return "===";
    727         case STRNEQ:
    728             return "!==";
    729         case LT:
    730             return "<";
    731         case GT:
    732             return ">";
    733         case LE:
    734             return "<=";
    735         case GE:
    736             return ">=";
    737         case INSTANCEOF:
    738             return "instanceof";
    739         case INTOKEN:
    740             return "in";
    741         case LSHIFT:
    742             return "<<";
    743         case RSHIFT:
    744             return ">>";
    745         case URSHIFT:
    746             return ">>>";
    747         case PLUS:
    748             return "+";
    749         case MINUS:
    750             return "-";
    751         case TIMES:
    752             return "*";
    753         case DIVIDE:
    754             return "/";
    755         case MOD:
    756             return "%";
    757         case DOTDOTDOT:
    758             return "...";
    759         case RETURN:
    760         case RESERVED_IF_STRICT:
    761         case RESERVED:
    762         case NUMBER:
    763         case IDENT:
    764         case STRING:
    765         case UNTERMINATED_IDENTIFIER_ESCAPE_ERRORTOK:
    766         case UNTERMINATED_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
    767         case UNTERMINATED_MULTILINE_COMMENT_ERRORTOK:
    768         case UNTERMINATED_NUMERIC_LITERAL_ERRORTOK:
    769         case UNTERMINATED_STRING_LITERAL_ERRORTOK:
    770         case INVALID_IDENTIFIER_ESCAPE_ERRORTOK:
    771         case INVALID_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
    772         case INVALID_NUMERIC_LITERAL_ERRORTOK:
    773         case INVALID_OCTAL_NUMBER_ERRORTOK:
    774         case INVALID_STRING_LITERAL_ERRORTOK:
    775         case ERRORTOK:
    776         case EOFTOK:
    777             return 0;
    778         case LastUntaggedToken:
    779             break;
    780         }
    781         RELEASE_ASSERT_NOT_REACHED();
    782         return "internal error";
    783     }
    784    
    785     ALWAYS_INLINE void updateErrorMessageSpecialCase(JSTokenType expectedToken)
    786     {
    787         switch (expectedToken) {
    788         case RESERVED_IF_STRICT:
    789             m_errorMessage = "Use of reserved word '" + getToken() + "' in strict mode";
    790             return;
    791         case RESERVED:
    792             m_errorMessage = "Use of reserved word '" + getToken() + '\'';
    793             return;
    794         case NUMBER:
    795             m_errorMessage = "Unexpected number '" + getToken() + '\'';
    796             return;
    797         case IDENT:
    798             m_errorMessage = "Expected an identifier but found '" + getToken() + "' instead";
    799             return;
    800         case STRING:
    801             m_errorMessage = "Unexpected string " + getToken();
    802             return;
    803            
    804         case UNTERMINATED_IDENTIFIER_ESCAPE_ERRORTOK:
    805         case UNTERMINATED_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
    806             m_errorMessage = "Incomplete unicode escape in identifier: '" + getToken() + '\'';
    807             return;
    808         case UNTERMINATED_MULTILINE_COMMENT_ERRORTOK:
    809             m_errorMessage = "Unterminated multiline comment";
    810             return;
    811         case UNTERMINATED_NUMERIC_LITERAL_ERRORTOK:
    812             m_errorMessage = "Unterminated numeric literal '" + getToken() + '\'';
    813             return;
    814         case UNTERMINATED_STRING_LITERAL_ERRORTOK:
    815             m_errorMessage = "Unterminated string literal '" + getToken() + '\'';
    816             return;
    817         case INVALID_IDENTIFIER_ESCAPE_ERRORTOK:
    818             m_errorMessage = "Invalid escape in identifier: '" + getToken() + '\'';
    819             return;
    820         case INVALID_IDENTIFIER_UNICODE_ESCAPE_ERRORTOK:
    821             m_errorMessage = "Invalid unicode escape in identifier: '" + getToken() + '\'';
    822             return;
    823         case INVALID_NUMERIC_LITERAL_ERRORTOK:
    824             m_errorMessage = "Invalid numeric literal: '" + getToken() + '\'';
    825             return;
    826         case INVALID_OCTAL_NUMBER_ERRORTOK:
    827             m_errorMessage = "Invalid use of octal: '" + getToken() + '\'';
    828                 return;
    829         case INVALID_STRING_LITERAL_ERRORTOK:
    830             m_errorMessage = "Invalid string literal: '" + getToken() + '\'';
    831             return;
    832         case ERRORTOK:
    833             m_errorMessage = "Unrecognized token '" + getToken() + '\'';
    834             return;
    835         case EOFTOK: 
    836             m_errorMessage = ASCIILiteral("Unexpected EOF");
    837             return;
    838         case RETURN:
    839             m_errorMessage = ASCIILiteral("Return statements are only valid inside functions");
    840             return;
    841         case DOTDOTDOT:
    842             m_errorMessage = ASCIILiteral("Spread operator is not supported in this context");
    843             return;
    844         default:
    845             RELEASE_ASSERT_NOT_REACHED();
    846             m_errorMessage = ASCIILiteral("internal error");
    847             return;
    848         }
    849     }
    850    
    851     NEVER_INLINE void updateErrorMessage()
    852     {
    853         const char* name = getTokenName(m_token.m_type);
    854         if (!name)
    855             updateErrorMessageSpecialCase(m_token.m_type);
    856         else
    857             m_errorMessage = String::format("Unexpected token '%s'", name);
    858         ASSERT(!m_errorMessage.isNull());
    859     }
    860    
    861     NEVER_INLINE void updateErrorMessage(JSTokenType expectedToken)
    862     {
    863         const char* name = getTokenName(expectedToken);
    864         if (name)
    865             m_errorMessage = String::format("Expected token '%s'", name);
    866         else {
    867             if (!getTokenName(m_token.m_type))
    868                 updateErrorMessageSpecialCase(m_token.m_type);
    869             else
    870                 updateErrorMessageSpecialCase(expectedToken);
    871         }
    872         ASSERT(!m_errorMessage.isNull());
     632    void setErrorMessage(String msg)
     633    {
     634        m_errorMessage = msg;
    873635    }
    874636   
     
    970732    template <DeconstructionKind, class TreeBuilder> ALWAYS_INLINE TreeDeconstructionPattern createBindingPattern(TreeBuilder&, const Identifier&, int depth);
    971733    template <DeconstructionKind, class TreeBuilder> TreeDeconstructionPattern parseDeconstructionPattern(TreeBuilder&, int depth = 0);
    972     template <FunctionRequirements, bool nameIsInContainingScope, class TreeBuilder> bool parseFunctionInfo(TreeBuilder&, const Identifier*&, TreeFormalParameterList&, TreeFunctionBody&, unsigned& openBraceOffset, unsigned& closeBraceOffset, int& bodyStartLine, unsigned& bodyStartColumn);
     734    template <FunctionRequirements, FunctionParseMode, bool nameIsInContainingScope, class TreeBuilder> bool parseFunctionInfo(TreeBuilder&, const Identifier*&, TreeFormalParameterList&, TreeFunctionBody&, unsigned& openBraceOffset, unsigned& closeBraceOffset, int& bodyStartLine, unsigned& bodyStartColumn);
    973735    ALWAYS_INLINE int isBinaryOperator(JSTokenType);
    974736    bool allowAutomaticSemicolon();
     
    1015777    int m_nonTrivialExpressionCount;
    1016778    const Identifier* m_lastIdentifier;
     779    const Identifier* m_lastFunctionName;
    1017780    RefPtr<SourceProviderCache> m_functionCache;
    1018781    SourceElements* m_sourceElements;
Note: See TracChangeset for help on using the changeset viewer.