Index: src/scanner.cc |
diff --git a/src/scanner.cc b/src/scanner.cc |
index 04712e9f32a8ea529cc3b02ff6210e4e0d2b6e91..4392951c690ca91c01225bc6c3551ada6007e96a 100644 |
--- a/src/scanner.cc |
+++ b/src/scanner.cc |
@@ -1499,6 +1499,27 @@ void Scanner::CopyTokenDesc(TokenDesc* to, TokenDesc* from) { |
} |
+bool Scanner::IsNextEscapedReservedWord(LanguageMode language_mode, |
+ bool is_generator) { |
+ if (next_.token == Token::IDENTIFIER && next_.literal_chars->is_one_byte() && |
+ next_literal_contains_escapes()) { |
+ Vector<const uint8_t> chars = next_.literal_chars->one_byte_literal(); |
+ switch (KeywordOrIdentifierToken(chars.start(), chars.length())) { |
+ case Token::IDENTIFIER: |
+ return false; |
+ case Token::LET: |
+ case Token::FUTURE_STRICT_RESERVED_WORD: |
+ return is_strict(language_mode); |
+ case Token::YIELD: |
+ return is_generator || is_strict(language_mode); |
caitp (gmail)
2015/11/04 05:03:37
yield is reserved in strict mode, so the change wa
|
+ default: |
+ return true; |
+ } |
+ } |
+ return false; |
+} |
+ |
+ |
int DuplicateFinder::AddOneByteSymbol(Vector<const uint8_t> key, int value) { |
return AddSymbol(key, true, value); |
} |