| OLD | NEW | 
|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 // Features shared by parsing and pre-parsing scanners. | 5 // Features shared by parsing and pre-parsing scanners. | 
| 6 | 6 | 
| 7 #include <cmath> | 7 #include <cmath> | 
| 8 | 8 | 
| 9 #include "src/v8.h" | 9 #include "src/v8.h" | 
| 10 | 10 | 
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 388             token = Select('=', Token::ASSIGN_SHR, Token::SHR); | 388             token = Select('=', Token::ASSIGN_SHR, Token::SHR); | 
| 389           } else { | 389           } else { | 
| 390             token = Token::SAR; | 390             token = Token::SAR; | 
| 391           } | 391           } | 
| 392         } else { | 392         } else { | 
| 393           token = Token::GT; | 393           token = Token::GT; | 
| 394         } | 394         } | 
| 395         break; | 395         break; | 
| 396 | 396 | 
| 397       case '=': | 397       case '=': | 
| 398         // = == === | 398         // = == === => | 
| 399         Advance(); | 399         Advance(); | 
| 400         if (c0_ == '=') { | 400         if (c0_ == '=') { | 
| 401           token = Select('=', Token::EQ_STRICT, Token::EQ); | 401           token = Select('=', Token::EQ_STRICT, Token::EQ); | 
|  | 402         } else if (c0_ == '>') { | 
|  | 403           token = Select(Token::ARROW); | 
| 402         } else { | 404         } else { | 
| 403           token = Token::ASSIGN; | 405           token = Token::ASSIGN; | 
| 404         } | 406         } | 
| 405         break; | 407         break; | 
| 406 | 408 | 
| 407       case '!': | 409       case '!': | 
| 408         // ! != !== | 410         // ! != !== | 
| 409         Advance(); | 411         Advance(); | 
| 410         if (c0_ == '=') { | 412         if (c0_ == '=') { | 
| 411           token = Select('=', Token::NE_STRICT, Token::NE); | 413           token = Select('=', Token::NE_STRICT, Token::NE); | 
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 921           (keyword_length <= 9 || input[9] == keyword[9])) {  \ | 923           (keyword_length <= 9 || input[9] == keyword[9])) {  \ | 
| 922         return token;                                         \ | 924         return token;                                         \ | 
| 923       }                                                       \ | 925       }                                                       \ | 
| 924     } | 926     } | 
| 925     KEYWORDS(KEYWORD_GROUP_CASE, KEYWORD) | 927     KEYWORDS(KEYWORD_GROUP_CASE, KEYWORD) | 
| 926   } | 928   } | 
| 927   return Token::IDENTIFIER; | 929   return Token::IDENTIFIER; | 
| 928 } | 930 } | 
| 929 | 931 | 
| 930 | 932 | 
|  | 933 bool Scanner::IdentifierIsFutureStrictReserved( | 
|  | 934     const AstRawString* string) const { | 
|  | 935   // Keywords are always 1-byte strings. | 
|  | 936   return string->is_one_byte() && | 
|  | 937       Token::FUTURE_STRICT_RESERVED_WORD == KeywordOrIdentifierToken( | 
|  | 938           string->raw_data(), string->length(), | 
|  | 939           harmony_scoping_, harmony_modules_); | 
|  | 940 } | 
|  | 941 | 
|  | 942 | 
| 931 Token::Value Scanner::ScanIdentifierOrKeyword() { | 943 Token::Value Scanner::ScanIdentifierOrKeyword() { | 
| 932   ASSERT(unicode_cache_->IsIdentifierStart(c0_)); | 944   ASSERT(unicode_cache_->IsIdentifierStart(c0_)); | 
| 933   LiteralScope literal(this); | 945   LiteralScope literal(this); | 
| 934   // Scan identifier start character. | 946   // Scan identifier start character. | 
| 935   if (c0_ == '\\') { | 947   if (c0_ == '\\') { | 
| 936     uc32 c = ScanIdentifierUnicodeEscape(); | 948     uc32 c = ScanIdentifierUnicodeEscape(); | 
| 937     // Only allow legal identifier start characters. | 949     // Only allow legal identifier start characters. | 
| 938     if (c < 0 || | 950     if (c < 0 || | 
| 939         c == '\\' ||  // No recursive escapes. | 951         c == '\\' ||  // No recursive escapes. | 
| 940         !unicode_cache_->IsIdentifierStart(c)) { | 952         !unicode_cache_->IsIdentifierStart(c)) { | 
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1265     } | 1277     } | 
| 1266     backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); | 1278     backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); | 
| 1267   } | 1279   } | 
| 1268   backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); | 1280   backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); | 
| 1269 | 1281 | 
| 1270   backing_store_.AddBlock(bytes); | 1282   backing_store_.AddBlock(bytes); | 
| 1271   return backing_store_.EndSequence().start(); | 1283   return backing_store_.EndSequence().start(); | 
| 1272 } | 1284 } | 
| 1273 | 1285 | 
| 1274 } }  // namespace v8::internal | 1286 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|