| Index: src/parsing/preparser.cc
|
| diff --git a/src/parsing/preparser.cc b/src/parsing/preparser.cc
|
| index 330fe0e4feeaea6e3ec97ae0fed4ef32aff2f2de..c65a0a58ff21f979824374c4059f705ae71dbd2c 100644
|
| --- a/src/parsing/preparser.cc
|
| +++ b/src/parsing/preparser.cc
|
| @@ -101,7 +101,7 @@ PreParser::PreParseResult PreParser::PreParseLazyFunction(
|
| if (is_strict(scope()->language_mode())) {
|
| int end_pos = scanner()->location().end_pos;
|
| CheckStrictOctalLiteral(start_position, end_pos, &ok);
|
| - CheckDecimalLiteralWithLeadingZero(use_counts, start_position, end_pos);
|
| + CheckDecimalLiteralWithLeadingZero(start_position, end_pos);
|
| }
|
| }
|
| return kPreParseSuccess;
|
| @@ -121,17 +121,6 @@ PreParser::PreParseResult PreParser::PreParseLazyFunction(
|
| // That means that contextual checks (like a label being declared where
|
| // it is used) are generally omitted.
|
|
|
| -
|
| -PreParser::Statement PreParser::ParseScopedStatement(bool legacy, bool* ok) {
|
| - if (is_strict(language_mode()) || peek() != Token::FUNCTION ||
|
| - (legacy && allow_harmony_restrictive_declarations())) {
|
| - return ParseStatement(nullptr, kDisallowLabelledFunctionStatement, ok);
|
| - } else {
|
| - BlockState block_state(&scope_state_);
|
| - return ParseFunctionDeclaration(ok);
|
| - }
|
| -}
|
| -
|
| PreParser::Statement PreParser::ParseHoistableDeclaration(
|
| int pos, ParseFunctionFlags flags, ZoneList<const AstRawString*>* names,
|
| bool default_export, bool* ok) {
|
| @@ -195,18 +184,6 @@ PreParser::Statement PreParser::ParseClassDeclaration(
|
| return Statement::Default();
|
| }
|
|
|
| -PreParser::Statement PreParser::ParseVariableStatement(
|
| - VariableDeclarationContext var_context,
|
| - ZoneList<const AstRawString*>* names, bool* ok) {
|
| - // VariableStatement ::
|
| - // VariableDeclarations ';'
|
| -
|
| - Statement result =
|
| - ParseVariableDeclarations(var_context, nullptr, names, CHECK_OK);
|
| - ExpectSemicolon(CHECK_OK);
|
| - return result;
|
| -}
|
| -
|
| PreParser::Statement PreParser::ParseFunctionDeclaration(bool* ok) {
|
| Consume(Token::FUNCTION);
|
| int pos = position();
|
| @@ -264,7 +241,7 @@ PreParser::Statement PreParser::ParseExpressionOrLabelledStatement(
|
| if (allow_function == kAllowLabelledFunctionStatement) {
|
| return ParseFunctionDeclaration(ok);
|
| } else {
|
| - return ParseScopedStatement(true, ok);
|
| + return ParseScopedStatement(names, true, ok);
|
| }
|
| }
|
| Statement statement =
|
| @@ -288,10 +265,10 @@ PreParser::Statement PreParser::ParseIfStatement(
|
| Expect(Token::LPAREN, CHECK_OK);
|
| ParseExpression(true, CHECK_OK);
|
| Expect(Token::RPAREN, CHECK_OK);
|
| - Statement stat = ParseScopedStatement(false, CHECK_OK);
|
| + Statement stat = ParseScopedStatement(labels, false, CHECK_OK);
|
| if (peek() == Token::ELSE) {
|
| Next();
|
| - Statement else_stat = ParseScopedStatement(false, CHECK_OK);
|
| + Statement else_stat = ParseScopedStatement(labels, false, CHECK_OK);
|
| stat = (stat.IsJumpStatement() && else_stat.IsJumpStatement()) ?
|
| Statement::Jump() : Statement::Default();
|
| } else {
|
| @@ -388,7 +365,7 @@ PreParser::Statement PreParser::ParseWithStatement(
|
|
|
| Scope* with_scope = NewScope(WITH_SCOPE);
|
| BlockState block_state(&scope_state_, with_scope);
|
| - ParseScopedStatement(true, CHECK_OK);
|
| + ParseScopedStatement(labels, true, CHECK_OK);
|
| return Statement::Default();
|
| }
|
|
|
| @@ -434,7 +411,7 @@ PreParser::Statement PreParser::ParseDoWhileStatement(
|
| // 'do' Statement 'while' '(' Expression ')' ';'
|
|
|
| Expect(Token::DO, CHECK_OK);
|
| - ParseScopedStatement(true, CHECK_OK);
|
| + ParseScopedStatement(nullptr, true, CHECK_OK);
|
| Expect(Token::WHILE, CHECK_OK);
|
| Expect(Token::LPAREN, CHECK_OK);
|
| ParseExpression(true, CHECK_OK);
|
| @@ -452,7 +429,7 @@ PreParser::Statement PreParser::ParseWhileStatement(
|
| Expect(Token::LPAREN, CHECK_OK);
|
| ParseExpression(true, CHECK_OK);
|
| Expect(Token::RPAREN, CHECK_OK);
|
| - ParseScopedStatement(true, ok);
|
| + ParseScopedStatement(nullptr, true, ok);
|
| return Statement::Default();
|
| }
|
|
|
| @@ -518,7 +495,7 @@ PreParser::Statement PreParser::ParseForStatement(
|
| {
|
| ReturnExprScope no_tail_calls(function_state_,
|
| ReturnExprContext::kInsideForInOfBody);
|
| - ParseScopedStatement(true, CHECK_OK);
|
| + ParseScopedStatement(nullptr, true, CHECK_OK);
|
| }
|
| return Statement::Default();
|
| }
|
| @@ -555,7 +532,7 @@ PreParser::Statement PreParser::ParseForStatement(
|
| Expect(Token::RPAREN, CHECK_OK);
|
| {
|
| BlockState block_state(&scope_state_);
|
| - ParseScopedStatement(true, CHECK_OK);
|
| + ParseScopedStatement(nullptr, true, CHECK_OK);
|
| }
|
| return Statement::Default();
|
| }
|
| @@ -584,7 +561,7 @@ PreParser::Statement PreParser::ParseForStatement(
|
| }
|
| Expect(Token::RPAREN, CHECK_OK);
|
|
|
| - ParseScopedStatement(true, ok);
|
| + ParseScopedStatement(nullptr, true, ok);
|
| }
|
| return Statement::Default();
|
| }
|
| @@ -672,19 +649,6 @@ PreParser::Statement PreParser::ParseTryStatement(bool* ok) {
|
| }
|
|
|
|
|
| -PreParser::Statement PreParser::ParseDebuggerStatement(bool* ok) {
|
| - // In ECMA-262 'debugger' is defined as a reserved keyword. In some browser
|
| - // contexts this is used as a statement which invokes the debugger as if a
|
| - // break point is present.
|
| - // DebuggerStatement ::
|
| - // 'debugger' ';'
|
| -
|
| - Expect(Token::DEBUGGER, CHECK_OK);
|
| - ExpectSemicolon(ok);
|
| - return Statement::Default();
|
| -}
|
| -
|
| -
|
| // Redefinition of CHECK_OK for parsing expressions.
|
| #undef CHECK_OK
|
| #define CHECK_OK CHECK_OK_VALUE(Expression::Default())
|
| @@ -745,8 +709,7 @@ PreParser::Expression PreParser::ParseFunctionLiteral(
|
| if (is_strict(language_mode)) {
|
| int end_position = scanner()->location().end_pos;
|
| CheckStrictOctalLiteral(start_position, end_position, CHECK_OK);
|
| - CheckDecimalLiteralWithLeadingZero(use_counts_, start_position,
|
| - end_position);
|
| + CheckDecimalLiteralWithLeadingZero(start_position, end_position);
|
| }
|
|
|
| return Expression::Default();
|
| @@ -851,28 +814,6 @@ PreParserExpression PreParser::ParseClassLiteral(
|
| return Expression::Default();
|
| }
|
|
|
| -
|
| -PreParser::Expression PreParser::ParseV8Intrinsic(bool* ok) {
|
| - // CallRuntime ::
|
| - // '%' Identifier Arguments
|
| - Expect(Token::MOD, CHECK_OK);
|
| - if (!allow_natives()) {
|
| - *ok = false;
|
| - return Expression::Default();
|
| - }
|
| - // Allow "eval" or "arguments" for backward compatibility.
|
| - ParseIdentifier(kAllowRestrictedIdentifiers, CHECK_OK);
|
| - Scanner::Location spread_pos;
|
| - ExpressionClassifier classifier(this);
|
| - ParseArguments(&spread_pos, ok);
|
| - ValidateExpression(CHECK_OK);
|
| -
|
| - DCHECK(!spread_pos.IsValid());
|
| -
|
| - return Expression::Default();
|
| -}
|
| -
|
| -
|
| PreParserExpression PreParser::ParseDoExpression(bool* ok) {
|
| // AssignmentExpression ::
|
| // do '{' StatementList '}'
|
|
|