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

Unified Diff: src/scanner.cc

Issue 1429983002: [es6] early error when Identifier is an escaped reserved word (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Bunch of comments addressed + mozilla/test262 statuses updated Created 5 years, 1 month 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
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);
}

Powered by Google App Engine
This is Rietveld 408576698