Index: src/parsing/preparser.cc |
diff --git a/src/parsing/preparser.cc b/src/parsing/preparser.cc |
index c0db7ef9dd72c0dd02e41491229bce6fdbf74e4c..8712fff3b9896e8bb44bbc5d054c03ba37066121 100644 |
--- a/src/parsing/preparser.cc |
+++ b/src/parsing/preparser.cc |
@@ -38,8 +38,10 @@ void PreParserTraits::ReportMessageAt(int start_pos, int end_pos, |
PreParserIdentifier PreParserTraits::GetSymbol(Scanner* scanner) { |
- if (scanner->current_token() == Token::FUTURE_RESERVED_WORD) { |
- return PreParserIdentifier::FutureReserved(); |
+ if (scanner->current_token() == Token::ENUM) { |
+ return PreParserIdentifier::Enum(); |
+ } else if (scanner->current_token() == Token::AWAIT) { |
+ return PreParserIdentifier::Await(); |
} else if (scanner->current_token() == |
Token::FUTURE_STRICT_RESERVED_WORD) { |
return PreParserIdentifier::FutureStrictReserved(); |
@@ -100,7 +102,9 @@ PreParserExpression PreParserTraits::ParseFunctionLiteral( |
PreParser::PreParseResult PreParser::PreParseLazyFunction( |
LanguageMode language_mode, FunctionKind kind, bool has_simple_parameters, |
- ParserRecorder* log, Scanner::BookmarkScope* bookmark, int* use_counts) { |
+ bool parsing_module, ParserRecorder* log, Scanner::BookmarkScope* bookmark, |
+ int* use_counts) { |
+ parsing_module_ = parsing_module; |
log_ = log; |
use_counts_ = use_counts; |
// Lazy functions always have trivial outer scopes (no with/catch scopes). |
@@ -603,7 +607,8 @@ PreParser::Statement PreParser::ParseExpressionOrLabelledStatement( |
if (starts_with_identifier && expr.IsIdentifier() && peek() == Token::COLON) { |
// Expression is a single identifier, and not, e.g., a parenthesized |
// identifier. |
- DCHECK(!expr.AsIdentifier().IsFutureReserved()); |
+ DCHECK(!expr.AsIdentifier().IsEnum()); |
+ DCHECK(!parsing_module_ || !expr.AsIdentifier().IsAwait()); |
DCHECK(is_sloppy(language_mode()) || |
!IsFutureStrictReserved(expr.AsIdentifier())); |
Consume(Token::COLON); |