| 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);
|
|
|