| 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 #ifndef V8_PARSING_SCANNER_H_ | 7 #ifndef V8_PARSING_SCANNER_H_ |
| 8 #define V8_PARSING_SCANNER_H_ | 8 #define V8_PARSING_SCANNER_H_ |
| 9 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 } | 218 } |
| 219 | 219 |
| 220 Handle<String> Internalize(Isolate* isolate) const; | 220 Handle<String> Internalize(Isolate* isolate) const; |
| 221 | 221 |
| 222 void CopyFrom(const LiteralBuffer* other) { | 222 void CopyFrom(const LiteralBuffer* other) { |
| 223 if (other == nullptr) { | 223 if (other == nullptr) { |
| 224 Reset(); | 224 Reset(); |
| 225 } else { | 225 } else { |
| 226 is_one_byte_ = other->is_one_byte_; | 226 is_one_byte_ = other->is_one_byte_; |
| 227 position_ = other->position_; | 227 position_ = other->position_; |
| 228 backing_store_.Dispose(); | 228 if (position_ < backing_store_.length()) { |
| 229 backing_store_ = other->backing_store_.Clone(); | 229 std::copy(other->backing_store_.begin(), |
| 230 other->backing_store_.begin() + position_, |
| 231 backing_store_.begin()); |
| 232 } else { |
| 233 backing_store_.Dispose(); |
| 234 backing_store_ = other->backing_store_.Clone(); |
| 235 } |
| 230 } | 236 } |
| 231 } | 237 } |
| 232 | 238 |
| 233 private: | 239 private: |
| 234 static const int kInitialCapacity = 16; | 240 static const int kInitialCapacity = 16; |
| 235 static const int kGrowthFactory = 4; | 241 static const int kGrowthFactory = 4; |
| 236 static const int kMinConversionSlack = 256; | 242 static const int kMinConversionSlack = 256; |
| 237 static const int kMaxGrowth = 1 * MB; | 243 static const int kMaxGrowth = 1 * MB; |
| 238 inline int NewCapacity(int min_capacity) { | 244 inline int NewCapacity(int min_capacity) { |
| 239 int capacity = Max(min_capacity, backing_store_.length()); | 245 int capacity = Max(min_capacity, backing_store_.length()); |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 bool allow_harmony_exponentiation_operator_; | 793 bool allow_harmony_exponentiation_operator_; |
| 788 | 794 |
| 789 MessageTemplate::Template scanner_error_; | 795 MessageTemplate::Template scanner_error_; |
| 790 Location scanner_error_location_; | 796 Location scanner_error_location_; |
| 791 }; | 797 }; |
| 792 | 798 |
| 793 } // namespace internal | 799 } // namespace internal |
| 794 } // namespace v8 | 800 } // namespace v8 |
| 795 | 801 |
| 796 #endif // V8_PARSING_SCANNER_H_ | 802 #endif // V8_PARSING_SCANNER_H_ |
| OLD | NEW |