Chromium Code Reviews| 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 <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <cmath> | 9 #include <cmath> |
| 10 | 10 |
| (...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 836 Advance<capture_raw>(); | 836 Advance<capture_raw>(); |
| 837 if (c == '`') { | 837 if (c == '`') { |
| 838 result = Token::TEMPLATE_TAIL; | 838 result = Token::TEMPLATE_TAIL; |
| 839 ReduceRawLiteralLength(1); | 839 ReduceRawLiteralLength(1); |
| 840 break; | 840 break; |
| 841 } else if (c == '$' && c0_ == '{') { | 841 } else if (c == '$' && c0_ == '{') { |
| 842 Advance<capture_raw>(); // Consume '{' | 842 Advance<capture_raw>(); // Consume '{' |
| 843 ReduceRawLiteralLength(2); | 843 ReduceRawLiteralLength(2); |
| 844 break; | 844 break; |
| 845 } else if (c == '\\') { | 845 } else if (c == '\\') { |
| 846 if (unicode_cache_->IsLineTerminator(c0_)) { | 846 if (c0_ > 0 && unicode_cache_->IsLineTerminator(c0_)) { |
|
arv (Not doing code reviews)
2015/02/04 20:10:49
This seems fine.
One thing we can do is to add a
| |
| 847 // The TV of LineContinuation :: \ LineTerminatorSequence is the empty | 847 // The TV of LineContinuation :: \ LineTerminatorSequence is the empty |
| 848 // code unit sequence. | 848 // code unit sequence. |
| 849 uc32 lastChar = c0_; | 849 uc32 lastChar = c0_; |
| 850 Advance<capture_raw>(); | 850 Advance<capture_raw>(); |
| 851 if (lastChar == '\r') { | 851 if (lastChar == '\r') { |
| 852 ReduceRawLiteralLength(1); // Remove \r | 852 ReduceRawLiteralLength(1); // Remove \r |
| 853 if (c0_ == '\n') { | 853 if (c0_ == '\n') { |
| 854 Advance<capture_raw>(); // Adds \n | 854 Advance<capture_raw>(); // Adds \n |
| 855 } else { | 855 } else { |
| 856 AddRawLiteralChar('\n'); | 856 AddRawLiteralChar('\n'); |
| (...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1487 } | 1487 } |
| 1488 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); | 1488 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); |
| 1489 } | 1489 } |
| 1490 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); | 1490 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); |
| 1491 | 1491 |
| 1492 backing_store_.AddBlock(bytes); | 1492 backing_store_.AddBlock(bytes); |
| 1493 return backing_store_.EndSequence().start(); | 1493 return backing_store_.EndSequence().start(); |
| 1494 } | 1494 } |
| 1495 | 1495 |
| 1496 } } // namespace v8::internal | 1496 } } // namespace v8::internal |
| OLD | NEW |