Chromium Code Reviews| Index: src/heap/heap.cc |
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
| index 8b08802f461acd17f24c2e2676a39f2812fcd684..9273de6631b56d69cdac55e0c3fafe95be65e6fd 100644 |
| --- a/src/heap/heap.cc |
| +++ b/src/heap/heap.cc |
| @@ -3067,9 +3067,12 @@ void Heap::CreateInitialObjects() { |
| { |
| HandleScope scope(isolate()); |
| -#define SYMBOL_INIT(name) \ |
| - Handle<Symbol> name = factory->NewPrivateOwnSymbol(); \ |
| - roots_[k##name##RootIndex] = *name; |
| +#define SYMBOL_INIT(name) \ |
| + { \ |
| + Handle<String> name##d = factory->NewStringFromStaticChars(#name); \ |
| + Handle<Object> symbol(isolate()->factory()->NewPrivateOwnSymbol(name##d)); \ |
| + roots_[k##name##RootIndex] = *symbol; \ |
| + } |
| PRIVATE_SYMBOL_LIST(SYMBOL_INIT) |
| #undef SYMBOL_INIT |
| } |
| @@ -3178,6 +3181,19 @@ void Heap::CreateInitialObjects() { |
| } |
| +void Heap::AddPrivateGlobalSymbols(Handle<Object> private_intern_table) { |
| +#define ADD_SYMBOL_TO_PRIVATE_INTERN_TABLE(name_arg) \ |
| + { \ |
| + Handle<Symbol> symbol(Symbol::cast(roots_[k##name_arg##RootIndex])); \ |
| + Handle<String> name_arg##d(String::cast(symbol->name())); \ |
| + JSObject::SetProperty(Handle<JSObject>::cast(private_intern_table), \ |
|
Toon Verwaest
2015/05/26 09:06:26
You probably want to use AddProperty here
Erik Corry Chromium.org
2015/05/26 09:51:32
Done.
|
| + name_arg##d, symbol, STRICT).Assert(); \ |
| + } |
| + PRIVATE_SYMBOL_LIST(ADD_SYMBOL_TO_PRIVATE_INTERN_TABLE) |
| +#undef ADD_SYMBOL_TO_PRIVATE_INTERN_TABLE |
| +} |
| + |
| + |
| bool Heap::RootCanBeWrittenAfterInitialization(Heap::RootListIndex root_index) { |
| switch (root_index) { |
| case kStoreBufferTopRootIndex: |