Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp (227103 => 227104)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2018-01-18 01:58:05 UTC (rev 227103)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2018-01-18 01:58:25 UTC (rev 227104)
@@ -212,12 +212,6 @@
return ConsoleObject::create(vm, global, ConsoleObject::createStructure(vm, global, constructEmptyObject(global->globalExec())));
}
-static JSValue createAtomicsProperty(VM& vm, JSObject* object)
-{
- JSGlobalObject* global = jsCast<JSGlobalObject*>(object);
- return AtomicsObject::create(vm, global, AtomicsObject::createStructure(vm, global, global->objectPrototype()));
-}
-
static EncodedJSValue JSC_HOST_CALL makeBoundFunction(ExecState* exec)
{
VM& vm = exec->vm();
@@ -308,7 +302,6 @@
Proxy createProxyProperty DontEnum|PropertyCallback
JSON createJSONProperty DontEnum|PropertyCallback
Math createMathProperty DontEnum|PropertyCallback
- Atomics createAtomicsProperty DontEnum|PropertyCallback
console createConsoleProperty DontEnum|PropertyCallback
Int8Array JSGlobalObject::m_typedArrayInt8 DontEnum|ClassStructure
Int16Array JSGlobalObject::m_typedArrayInt16 DontEnum|ClassStructure
@@ -664,11 +657,15 @@
JSArrayBufferConstructor* arrayBufferConstructor = JSArrayBufferConstructor::create(vm, JSArrayBufferConstructor::createStructure(vm, this, m_functionPrototype.get()), m_arrayBufferPrototype.get(), m_speciesGetterSetter.get(), ArrayBufferSharingMode::Default);
m_arrayBufferPrototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, arrayBufferConstructor, static_cast<unsigned>(PropertyAttribute::DontEnum));
+
#if ENABLE(SHARED_ARRAY_BUFFER)
JSArrayBufferConstructor* sharedArrayBufferConstructor = nullptr;
sharedArrayBufferConstructor = JSArrayBufferConstructor::create(vm, JSArrayBufferConstructor::createStructure(vm, this, m_functionPrototype.get()), m_sharedArrayBufferPrototype.get(), m_speciesGetterSetter.get(), ArrayBufferSharingMode::Shared);
m_sharedArrayBufferPrototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, sharedArrayBufferConstructor, static_cast<unsigned>(PropertyAttribute::DontEnum));
+
+ AtomicsObject* atomicsObject = AtomicsObject::create(vm, this, AtomicsObject::createStructure(vm, this, m_objectPrototype.get()));
#endif
+
#define CREATE_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \
capitalName ## Constructor* lowerName ## Constructor = capitalName ## Constructor::create(vm, capitalName ## Constructor::createStructure(vm, this, m_functionPrototype.get()), m_ ## lowerName ## Prototype.get(), m_speciesGetterSetter.get()); \
m_ ## lowerName ## Prototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, lowerName ## Constructor, static_cast<unsigned>(PropertyAttribute::DontEnum)); \
@@ -747,6 +744,7 @@
putDirectWithoutTransition(vm, vm.propertyNames->ArrayBuffer, arrayBufferConstructor, static_cast<unsigned>(PropertyAttribute::DontEnum));
#if ENABLE(SHARED_ARRAY_BUFFER)
putDirectWithoutTransition(vm, vm.propertyNames->SharedArrayBuffer, sharedArrayBufferConstructor, static_cast<unsigned>(PropertyAttribute::DontEnum));
+ putDirectWithoutTransition(vm, Identifier::fromString(exec, "Atomics"), atomicsObject, static_cast<unsigned>(PropertyAttribute::DontEnum));
#endif
#define PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \