| Index: src/scanner.cc
|
| diff --git a/src/scanner.cc b/src/scanner.cc
|
| index f727a6fed2f5a842cf1b0b4b077187f4bf6d0fda..69bdd06ed28da7b0e81322b3961fcd9534b03ced 100644
|
| --- a/src/scanner.cc
|
| +++ b/src/scanner.cc
|
| @@ -35,7 +35,6 @@ Handle<String> LiteralBuffer::Internalize(Isolate* isolate) const {
|
| Scanner::Scanner(UnicodeCache* unicode_cache)
|
| : unicode_cache_(unicode_cache),
|
| octal_pos_(Location::invalid()),
|
| - harmony_scoping_(false),
|
| harmony_modules_(false),
|
| harmony_numeric_literals_(false),
|
| harmony_classes_(false),
|
| @@ -1089,79 +1088,77 @@ uc32 Scanner::ScanUnicodeEscape() {
|
| // ----------------------------------------------------------------------------
|
| // Keyword Matcher
|
|
|
| -#define KEYWORDS(KEYWORD_GROUP, KEYWORD) \
|
| - KEYWORD_GROUP('b') \
|
| - KEYWORD("break", Token::BREAK) \
|
| - KEYWORD_GROUP('c') \
|
| - KEYWORD("case", Token::CASE) \
|
| - KEYWORD("catch", Token::CATCH) \
|
| - KEYWORD("class", \
|
| - harmony_classes ? Token::CLASS : Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD("const", Token::CONST) \
|
| - KEYWORD("continue", Token::CONTINUE) \
|
| - KEYWORD_GROUP('d') \
|
| - KEYWORD("debugger", Token::DEBUGGER) \
|
| - KEYWORD("default", Token::DEFAULT) \
|
| - KEYWORD("delete", Token::DELETE) \
|
| - KEYWORD("do", Token::DO) \
|
| - KEYWORD_GROUP('e') \
|
| - KEYWORD("else", Token::ELSE) \
|
| - KEYWORD("enum", Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD("export", \
|
| - harmony_modules ? Token::EXPORT : Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD("extends", \
|
| - harmony_classes ? Token::EXTENDS : Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD_GROUP('f') \
|
| - KEYWORD("false", Token::FALSE_LITERAL) \
|
| - KEYWORD("finally", Token::FINALLY) \
|
| - KEYWORD("for", Token::FOR) \
|
| - KEYWORD("function", Token::FUNCTION) \
|
| - KEYWORD_GROUP('i') \
|
| - KEYWORD("if", Token::IF) \
|
| - KEYWORD("implements", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD("import", \
|
| - harmony_modules ? Token::IMPORT : Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD("in", Token::IN) \
|
| - KEYWORD("instanceof", Token::INSTANCEOF) \
|
| - KEYWORD("interface", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD_GROUP('l') \
|
| - KEYWORD("let", \
|
| - harmony_scoping ? Token::LET : Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD_GROUP('n') \
|
| - KEYWORD("new", Token::NEW) \
|
| - KEYWORD("null", Token::NULL_LITERAL) \
|
| - KEYWORD_GROUP('p') \
|
| - KEYWORD("package", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD("private", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD("protected", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD("public", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD_GROUP('r') \
|
| - KEYWORD("return", Token::RETURN) \
|
| - KEYWORD_GROUP('s') \
|
| - KEYWORD("static", harmony_classes ? Token::STATIC \
|
| - : Token::FUTURE_STRICT_RESERVED_WORD) \
|
| - KEYWORD("super", \
|
| - harmony_classes ? Token::SUPER : Token::FUTURE_RESERVED_WORD) \
|
| - KEYWORD("switch", Token::SWITCH) \
|
| - KEYWORD_GROUP('t') \
|
| - KEYWORD("this", Token::THIS) \
|
| - KEYWORD("throw", Token::THROW) \
|
| - KEYWORD("true", Token::TRUE_LITERAL) \
|
| - KEYWORD("try", Token::TRY) \
|
| - KEYWORD("typeof", Token::TYPEOF) \
|
| - KEYWORD_GROUP('v') \
|
| - KEYWORD("var", Token::VAR) \
|
| - KEYWORD("void", Token::VOID) \
|
| - KEYWORD_GROUP('w') \
|
| - KEYWORD("while", Token::WHILE) \
|
| - KEYWORD("with", Token::WITH) \
|
| - KEYWORD_GROUP('y') \
|
| +#define KEYWORDS(KEYWORD_GROUP, KEYWORD) \
|
| + KEYWORD_GROUP('b') \
|
| + KEYWORD("break", Token::BREAK) \
|
| + KEYWORD_GROUP('c') \
|
| + KEYWORD("case", Token::CASE) \
|
| + KEYWORD("catch", Token::CATCH) \
|
| + KEYWORD("class", \
|
| + harmony_classes ? Token::CLASS : Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD("const", Token::CONST) \
|
| + KEYWORD("continue", Token::CONTINUE) \
|
| + KEYWORD_GROUP('d') \
|
| + KEYWORD("debugger", Token::DEBUGGER) \
|
| + KEYWORD("default", Token::DEFAULT) \
|
| + KEYWORD("delete", Token::DELETE) \
|
| + KEYWORD("do", Token::DO) \
|
| + KEYWORD_GROUP('e') \
|
| + KEYWORD("else", Token::ELSE) \
|
| + KEYWORD("enum", Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD("export", \
|
| + harmony_modules ? Token::EXPORT : Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD("extends", \
|
| + harmony_classes ? Token::EXTENDS : Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD_GROUP('f') \
|
| + KEYWORD("false", Token::FALSE_LITERAL) \
|
| + KEYWORD("finally", Token::FINALLY) \
|
| + KEYWORD("for", Token::FOR) \
|
| + KEYWORD("function", Token::FUNCTION) \
|
| + KEYWORD_GROUP('i') \
|
| + KEYWORD("if", Token::IF) \
|
| + KEYWORD("implements", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD("import", \
|
| + harmony_modules ? Token::IMPORT : Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD("in", Token::IN) \
|
| + KEYWORD("instanceof", Token::INSTANCEOF) \
|
| + KEYWORD("interface", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD_GROUP('l') \
|
| + KEYWORD("let", Token::LET) \
|
| + KEYWORD_GROUP('n') \
|
| + KEYWORD("new", Token::NEW) \
|
| + KEYWORD("null", Token::NULL_LITERAL) \
|
| + KEYWORD_GROUP('p') \
|
| + KEYWORD("package", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD("private", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD("protected", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD("public", Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD_GROUP('r') \
|
| + KEYWORD("return", Token::RETURN) \
|
| + KEYWORD_GROUP('s') \
|
| + KEYWORD("static", harmony_classes ? Token::STATIC \
|
| + : Token::FUTURE_STRICT_RESERVED_WORD) \
|
| + KEYWORD("super", \
|
| + harmony_classes ? Token::SUPER : Token::FUTURE_RESERVED_WORD) \
|
| + KEYWORD("switch", Token::SWITCH) \
|
| + KEYWORD_GROUP('t') \
|
| + KEYWORD("this", Token::THIS) \
|
| + KEYWORD("throw", Token::THROW) \
|
| + KEYWORD("true", Token::TRUE_LITERAL) \
|
| + KEYWORD("try", Token::TRY) \
|
| + KEYWORD("typeof", Token::TYPEOF) \
|
| + KEYWORD_GROUP('v') \
|
| + KEYWORD("var", Token::VAR) \
|
| + KEYWORD("void", Token::VOID) \
|
| + KEYWORD_GROUP('w') \
|
| + KEYWORD("while", Token::WHILE) \
|
| + KEYWORD("with", Token::WITH) \
|
| + KEYWORD_GROUP('y') \
|
| KEYWORD("yield", Token::YIELD)
|
|
|
|
|
| static Token::Value KeywordOrIdentifierToken(const uint8_t* input,
|
| int input_length,
|
| - bool harmony_scoping,
|
| bool harmony_modules,
|
| bool harmony_classes) {
|
| DCHECK(input_length >= 1);
|
| @@ -1211,8 +1208,7 @@ bool Scanner::IdentifierIsFutureStrictReserved(
|
| }
|
| return Token::FUTURE_STRICT_RESERVED_WORD ==
|
| KeywordOrIdentifierToken(string->raw_data(), string->length(),
|
| - harmony_scoping_, harmony_modules_,
|
| - harmony_classes_);
|
| + harmony_modules_, harmony_classes_);
|
| }
|
|
|
|
|
| @@ -1246,8 +1242,7 @@ Token::Value Scanner::ScanIdentifierOrKeyword() {
|
| literal.Complete();
|
| Vector<const uint8_t> chars = next_.literal_chars->one_byte_literal();
|
| return KeywordOrIdentifierToken(chars.start(), chars.length(),
|
| - harmony_scoping_, harmony_modules_,
|
| - harmony_classes_);
|
| + harmony_modules_, harmony_classes_);
|
| }
|
|
|
| HandleLeadSurrogate();
|
| @@ -1299,7 +1294,6 @@ Token::Value Scanner::ScanIdentifierOrKeyword() {
|
| Vector<const uint8_t> chars = next_.literal_chars->one_byte_literal();
|
| return KeywordOrIdentifierToken(chars.start(),
|
| chars.length(),
|
| - harmony_scoping_,
|
| harmony_modules_,
|
| harmony_classes_);
|
| }
|
|
|