OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #include "src/isolate.h" | 5 #include "src/isolate.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <fstream> // NOLINT(readability/streams) | 9 #include <fstream> // NOLINT(readability/streams) |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 3252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3263 #endif | 3263 #endif |
3264 | 3264 |
3265 Handle<Symbol> Isolate::SymbolFor(Heap::RootListIndex dictionary_index, | 3265 Handle<Symbol> Isolate::SymbolFor(Heap::RootListIndex dictionary_index, |
3266 Handle<String> name, bool private_symbol) { | 3266 Handle<String> name, bool private_symbol) { |
3267 Handle<String> key = factory()->InternalizeString(name); | 3267 Handle<String> key = factory()->InternalizeString(name); |
3268 Handle<NameDictionary> dictionary = | 3268 Handle<NameDictionary> dictionary = |
3269 Handle<NameDictionary>::cast(heap()->root_handle(dictionary_index)); | 3269 Handle<NameDictionary>::cast(heap()->root_handle(dictionary_index)); |
3270 int entry = dictionary->FindEntry(key); | 3270 int entry = dictionary->FindEntry(key); |
3271 Handle<Symbol> symbol; | 3271 Handle<Symbol> symbol; |
3272 if (entry == NameDictionary::kNotFound) { | 3272 if (entry == NameDictionary::kNotFound) { |
3273 symbol = private_symbol ? factory()->NewPrivateSymbol(key).ToHandleChecked() | 3273 symbol = |
3274 : factory()->NewSymbol(key).ToHandleChecked(); | 3274 private_symbol ? factory()->NewPrivateSymbol() : factory()->NewSymbol(); |
| 3275 symbol->set_name(*key); |
3275 dictionary = NameDictionary::Add(dictionary, key, symbol, | 3276 dictionary = NameDictionary::Add(dictionary, key, symbol, |
3276 PropertyDetails::Empty(), &entry); | 3277 PropertyDetails::Empty(), &entry); |
3277 switch (dictionary_index) { | 3278 switch (dictionary_index) { |
3278 case Heap::kPublicSymbolTableRootIndex: | 3279 case Heap::kPublicSymbolTableRootIndex: |
3279 symbol->set_is_public(true); | 3280 symbol->set_is_public(true); |
3280 heap()->set_public_symbol_table(*dictionary); | 3281 heap()->set_public_symbol_table(*dictionary); |
3281 break; | 3282 break; |
3282 case Heap::kApiSymbolTableRootIndex: | 3283 case Heap::kApiSymbolTableRootIndex: |
3283 heap()->set_api_symbol_table(*dictionary); | 3284 heap()->set_api_symbol_table(*dictionary); |
3284 break; | 3285 break; |
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3775 // Then check whether this scope intercepts. | 3776 // Then check whether this scope intercepts. |
3776 if ((flag & intercept_mask_)) { | 3777 if ((flag & intercept_mask_)) { |
3777 intercepted_flags_ |= flag; | 3778 intercepted_flags_ |= flag; |
3778 return true; | 3779 return true; |
3779 } | 3780 } |
3780 return false; | 3781 return false; |
3781 } | 3782 } |
3782 | 3783 |
3783 } // namespace internal | 3784 } // namespace internal |
3784 } // namespace v8 | 3785 } // namespace v8 |
OLD | NEW |