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: |