Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Unified Diff: src/parsing/preparser.cc

Issue 2318263002: [parser] Refactor of Parse*Statement*, part 3 (Closed)
Patch Set: Change after reviewers' comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/parsing/preparser.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 '}'
« no previous file with comments | « src/parsing/preparser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698