Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index b538db1d86838169a1c9171241628d5b7ad61db1..770425e490cb2089fd2d0d2ecb4f43cdf8f4a012 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -2418,9 +2418,24 @@ void Genesis::InitializeGlobal_harmony_sharedarraybuffer() { |
if (!FLAG_harmony_sharedarraybuffer) return; |
Handle<JSGlobalObject> global(native_context()->global_object()); |
+ Isolate* isolate = global->GetIsolate(); |
+ Factory* factory = isolate->factory(); |
+ |
Handle<JSFunction> shared_array_buffer_fun = |
InstallArrayBuffer(global, "SharedArrayBuffer"); |
native_context()->set_shared_array_buffer_fun(*shared_array_buffer_fun); |
+ |
+ Handle<String> name = factory->InternalizeUtf8String("Atomics"); |
+ Handle<JSFunction> cons = factory->NewFunction(name); |
+ JSFunction::SetInstancePrototype( |
+ cons, |
+ Handle<Object>(native_context()->initial_object_prototype(), isolate)); |
+ Handle<JSObject> atomics_object = factory->NewJSObject(cons, TENURED); |
+ DCHECK(atomics_object->IsJSObject()); |
+ JSObject::AddProperty(global, name, atomics_object, DONT_ENUM); |
+ |
+ SimpleInstallFunction(atomics_object, factory->InternalizeUtf8String("load"), |
+ Builtins::kAtomicsLoadCheck, 2, false); |
Jarin
2016/02/03 09:04:07
Here, you should pass "true" as the last argument.
binji
2016/02/03 22:09:02
Cool, that seems to work. Thanks! I saw "adapt", b
|
} |