| Index: src/scanner.cc | 
| diff --git a/src/scanner.cc b/src/scanner.cc | 
| index df19ee8faf3314176542f89a5c47588371350811..d121466e74330996d06a7be802644e235cd8dfc6 100644 | 
| --- a/src/scanner.cc | 
| +++ b/src/scanner.cc | 
| @@ -395,10 +395,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; | 
| } | 
| @@ -928,6 +930,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); | 
|  |