| Index: src/scanner.cc
|
| diff --git a/src/scanner.cc b/src/scanner.cc
|
| index 3c682014fe81ddffb401f50be5f23beb98ec034c..e0858c78641de6ae5f9b5987744c7ac2fd85ff42 100644
|
| --- a/src/scanner.cc
|
| +++ b/src/scanner.cc
|
| @@ -466,10 +466,12 @@ void Scanner::Scan() {
|
| break;
|
|
|
| case '=':
|
| - // = == ===
|
| + // = == === =>
|
| Advance();
|
| if (c0_ == '=') {
|
| token = Select('=', Token::EQ_STRICT, Token::EQ);
|
| + } else if (c0_ == '>') {
|
| + token = Select(Token::ARROW);
|
| } else {
|
| token = Token::ASSIGN;
|
| }
|
| @@ -1006,6 +1008,16 @@ static Token::Value KeywordOrIdentifierToken(const uint8_t* input,
|
| }
|
|
|
|
|
| +bool Scanner::IdentifierIsFutureStrictReserved(
|
| + const AstRawString* string) const {
|
| + // Keywords are always 1-byte strings.
|
| + return string->is_one_byte() &&
|
| + Token::FUTURE_STRICT_RESERVED_WORD ==
|
| + KeywordOrIdentifierToken(string->raw_data(), string->length(),
|
| + harmony_scoping_, harmony_modules_);
|
| +}
|
| +
|
| +
|
| Token::Value Scanner::ScanIdentifierOrKeyword() {
|
| ASSERT(unicode_cache_->IsIdentifierStart(c0_));
|
| LiteralScope literal(this);
|
|
|