Chromium Code Reviews| Index: src/isolate.cc |
| diff --git a/src/isolate.cc b/src/isolate.cc |
| index 5518f008e91a25470c452d660ea1054276210a49..2c375b77af2c01827e25f87e37003d95feac51f8 100644 |
| --- a/src/isolate.cc |
| +++ b/src/isolate.cc |
| @@ -2329,4 +2329,24 @@ ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
| #undef ISOLATE_FIELD_OFFSET |
| #endif |
| + |
| +Handle<JSObject> Isolate::GetSymbolRegistry() { |
| + if (heap()->symbol_registry()->IsUndefined()) { |
| + Handle<Map> map = factory()->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); |
| + Handle<JSObject> registry = factory()->NewJSObjectFromMap(map); |
| + heap()->set_symbol_registry(*registry); |
| + |
| + static const char* nested[] = { |
| + "for", "for_api", "for_intern", "keyFor", "private_api", "private_intern" |
| + }; |
| + for (unsigned i = 0; i < ARRAY_SIZE(nested); ++i) { |
| + Handle<String> name = factory()->InternalizeUtf8String(nested[i]); |
| + Handle<JSObject> obj = factory()->NewJSObjectFromMap(map); |
| + JSObject::SetProperty(registry, name, obj, NONE, STRICT); |
| + } |
| + } |
| + return handle(JSObject::cast(heap()->symbol_registry())); |
|
Michael Starzinger
2014/03/24 15:17:19
nit: Better use "return Handle<JSObject>::cast(fac
rossberg
2014/03/24 15:54:46
Done.
|
| +} |
| + |
| + |
| } } // namespace v8::internal |