| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 | 176 |
| 177 ~LiteralBuffer() { | 177 ~LiteralBuffer() { |
| 178 if (backing_store_.length() > 0) { | 178 if (backing_store_.length() > 0) { |
| 179 backing_store_.Dispose(); | 179 backing_store_.Dispose(); |
| 180 } | 180 } |
| 181 } | 181 } |
| 182 | 182 |
| 183 INLINE(void AddChar(uint32_t code_unit)) { | 183 INLINE(void AddChar(uint32_t code_unit)) { |
| 184 if (position_ >= backing_store_.length()) ExpandBuffer(); | 184 if (position_ >= backing_store_.length()) ExpandBuffer(); |
| 185 if (is_ascii_) { | 185 if (is_ascii_) { |
| 186 if (code_unit < kMaxAsciiCharCodeU) { | 186 if (code_unit <= unibrow::Latin1::kMaxChar) { |
| 187 backing_store_[position_] = static_cast<byte>(code_unit); | 187 backing_store_[position_] = static_cast<byte>(code_unit); |
| 188 position_ += kASCIISize; | 188 position_ += kOneByteSize; |
| 189 return; | 189 return; |
| 190 } | 190 } |
| 191 ConvertToUtf16(); | 191 ConvertToUtf16(); |
| 192 } | 192 } |
| 193 ASSERT(code_unit < 0x10000u); | 193 ASSERT(code_unit < 0x10000u); |
| 194 *reinterpret_cast<uc16*>(&backing_store_[position_]) = code_unit; | 194 *reinterpret_cast<uc16*>(&backing_store_[position_]) = code_unit; |
| 195 position_ += kUC16Size; | 195 position_ += kUC16Size; |
| 196 } | 196 } |
| 197 | 197 |
| 198 bool is_ascii() { return is_ascii_; } | 198 bool is_ascii() { return is_ascii_; } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 ASSERT(is_ascii_); | 243 ASSERT(is_ascii_); |
| 244 Vector<byte> new_store; | 244 Vector<byte> new_store; |
| 245 int new_content_size = position_ * kUC16Size; | 245 int new_content_size = position_ * kUC16Size; |
| 246 if (new_content_size >= backing_store_.length()) { | 246 if (new_content_size >= backing_store_.length()) { |
| 247 // Ensure room for all currently read code units as UC16 as well | 247 // Ensure room for all currently read code units as UC16 as well |
| 248 // as the code unit about to be stored. | 248 // as the code unit about to be stored. |
| 249 new_store = Vector<byte>::New(NewCapacity(new_content_size)); | 249 new_store = Vector<byte>::New(NewCapacity(new_content_size)); |
| 250 } else { | 250 } else { |
| 251 new_store = backing_store_; | 251 new_store = backing_store_; |
| 252 } | 252 } |
| 253 char* src = reinterpret_cast<char*>(backing_store_.start()); | 253 uint8_t* src = backing_store_.start(); |
| 254 uc16* dst = reinterpret_cast<uc16*>(new_store.start()); | 254 uc16* dst = reinterpret_cast<uc16*>(new_store.start()); |
| 255 for (int i = position_ - 1; i >= 0; i--) { | 255 for (int i = position_ - 1; i >= 0; i--) { |
| 256 dst[i] = src[i]; | 256 dst[i] = src[i]; |
| 257 } | 257 } |
| 258 if (new_store.start() != backing_store_.start()) { | 258 if (new_store.start() != backing_store_.start()) { |
| 259 backing_store_.Dispose(); | 259 backing_store_.Dispose(); |
| 260 backing_store_ = new_store; | 260 backing_store_ = new_store; |
| 261 } | 261 } |
| 262 position_ = new_content_size; | 262 position_ = new_content_size; |
| 263 is_ascii_ = false; | 263 is_ascii_ = false; |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 bool has_multiline_comment_before_next_; | 561 bool has_multiline_comment_before_next_; |
| 562 // Whether we scan 'let' as a keyword for harmony block-scoped let bindings. | 562 // Whether we scan 'let' as a keyword for harmony block-scoped let bindings. |
| 563 bool harmony_scoping_; | 563 bool harmony_scoping_; |
| 564 // Whether we scan 'module', 'import', 'export' as keywords. | 564 // Whether we scan 'module', 'import', 'export' as keywords. |
| 565 bool harmony_modules_; | 565 bool harmony_modules_; |
| 566 }; | 566 }; |
| 567 | 567 |
| 568 } } // namespace v8::internal | 568 } } // namespace v8::internal |
| 569 | 569 |
| 570 #endif // V8_SCANNER_H_ | 570 #endif // V8_SCANNER_H_ |
| OLD | NEW |