Chromium Code Reviews| Index: src/scanner.cc |
| diff --git a/src/scanner.cc b/src/scanner.cc |
| index de1b8e8b7202d211b297e8ca5737fb8f411299ed..267ae86204e3b7adfd79dc4f7694fc64bab47600 100644 |
| --- a/src/scanner.cc |
| +++ b/src/scanner.cc |
| @@ -40,7 +40,8 @@ Scanner::Scanner(UnicodeCache* unicode_cache) |
| harmony_numeric_literals_(false), |
| harmony_classes_(false), |
| harmony_templates_(false), |
| - harmony_unicode_(false) {} |
| + harmony_unicode_(false), |
| + harmony_exponentiation_(false) {} |
| void Scanner::Initialize(Utf16CharacterStream* source) { |
| @@ -533,8 +534,19 @@ void Scanner::Scan() { |
| break; |
| case '*': |
| - // * *= |
| - token = Select('=', Token::ASSIGN_MUL, Token::MUL); |
| + // * *= ** **= |
| + Advance(); |
| + if (c0_ == '*') { |
| + if (HarmonyExponentiation()) { |
| + token = Select('=', Token::ASSIGN_EXP, Token::EXP); |
| + } else { |
| + token = Token::ILLEGAL; |
|
arv (Not doing code reviews)
2015/02/25 16:58:25
This can be restructured so that you don't need t
|
| + } |
| + } else if (c0_ == '=') { |
| + token = Select(Token::ASSIGN_MUL); |
| + } else { |
| + token = Token::MUL; |
| + } |
| break; |
| case '%': |