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 "scanner.h" | 9 #include "scanner.h" |
10 | 10 |
11 #include "../include/v8stdint.h" | 11 #include "../include/v8stdint.h" |
| 12 #include "ast-string-table.h" |
12 #include "char-predicates-inl.h" | 13 #include "char-predicates-inl.h" |
13 #include "conversions-inl.h" | 14 #include "conversions-inl.h" |
14 #include "list-inl.h" | 15 #include "list-inl.h" |
15 #include "v8.h" | 16 #include "v8.h" |
16 #include "parser.h" | 17 #include "parser.h" |
17 | 18 |
18 namespace v8 { | 19 namespace v8 { |
19 namespace internal { | 20 namespace internal { |
20 | 21 |
21 // ---------------------------------------------------------------------------- | 22 // ---------------------------------------------------------------------------- |
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 Advance(); | 1087 Advance(); |
1087 } | 1088 } |
1088 } | 1089 } |
1089 literal.Complete(); | 1090 literal.Complete(); |
1090 | 1091 |
1091 next_.location.end_pos = source_pos() - 1; | 1092 next_.location.end_pos = source_pos() - 1; |
1092 return true; | 1093 return true; |
1093 } | 1094 } |
1094 | 1095 |
1095 | 1096 |
1096 Handle<String> Scanner::AllocateNextLiteralString(Isolate* isolate, | 1097 const AstString* Scanner::CurrentSymbol(AstStringTable* string_table) { |
1097 PretenureFlag tenured) { | 1098 if (is_literal_one_byte()) { |
1098 if (is_next_literal_one_byte()) { | 1099 return string_table->GetOneByteString(literal_one_byte_string()); |
1099 return isolate->factory()->NewStringFromOneByte( | |
1100 next_literal_one_byte_string(), tenured).ToHandleChecked(); | |
1101 } else { | |
1102 return isolate->factory()->NewStringFromTwoByte( | |
1103 next_literal_two_byte_string(), tenured).ToHandleChecked(); | |
1104 } | 1100 } |
| 1101 return string_table->GetTwoByteString(literal_two_byte_string()); |
1105 } | 1102 } |
1106 | 1103 |
1107 | 1104 |
1108 Handle<String> Scanner::AllocateInternalizedString(Isolate* isolate) { | 1105 const AstString* Scanner::NextSymbol(AstStringTable* string_table) { |
1109 if (is_literal_one_byte()) { | 1106 if (is_next_literal_one_byte()) { |
1110 return isolate->factory()->InternalizeOneByteString( | 1107 return string_table->GetOneByteString(next_literal_one_byte_string()); |
1111 literal_one_byte_string()); | |
1112 } else { | |
1113 return isolate->factory()->InternalizeTwoByteString( | |
1114 literal_two_byte_string()); | |
1115 } | 1108 } |
| 1109 return string_table->GetTwoByteString(next_literal_two_byte_string()); |
1116 } | 1110 } |
1117 | 1111 |
1118 | 1112 |
1119 double Scanner::DoubleValue() { | 1113 double Scanner::DoubleValue() { |
1120 ASSERT(is_literal_one_byte()); | 1114 ASSERT(is_literal_one_byte()); |
1121 return StringToDouble( | 1115 return StringToDouble( |
1122 unicode_cache_, | 1116 unicode_cache_, |
1123 literal_one_byte_string(), | 1117 literal_one_byte_string(), |
1124 ALLOW_HEX | ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL | ALLOW_BINARY); | 1118 ALLOW_HEX | ALLOW_OCTAL | ALLOW_IMPLICIT_OCTAL | ALLOW_BINARY); |
1125 } | 1119 } |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1271 } | 1265 } |
1272 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); | 1266 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); |
1273 } | 1267 } |
1274 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); | 1268 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); |
1275 | 1269 |
1276 backing_store_.AddBlock(bytes); | 1270 backing_store_.AddBlock(bytes); |
1277 return backing_store_.EndSequence().start(); | 1271 return backing_store_.EndSequence().start(); |
1278 } | 1272 } |
1279 | 1273 |
1280 } } // namespace v8::internal | 1274 } } // namespace v8::internal |
OLD | NEW |