An object's structure should reference the global object responsible for its creation
https://bugs.webkit.org/show_bug.cgi?id=67624
Reviewed by Gavin Barraclough.
Source/JavaScriptCore:
Add a reference to a GlobalObject to Structure, and update all calls to
Structure::create() to pass the global object that is the origin for that
structure. For objects where the appropriate global object isn't available
at construction time (global object prototypes, etc), or objects that
logically don't have a global object (strings, etc) we just pass null.
This change is largely mechanical (passing a new globalObject parameter
around).
- API/JSCallbackConstructor.h:
(JSC::JSCallbackConstructor::createStructure):
- API/JSCallbackFunction.h:
(JSC::JSCallbackFunction::createStructure):
(JSC::JSCallbackObject::createStructure):
- API/JSContextRef.cpp:
- JavaScriptCore.exp:
- debugger/DebuggerActivation.h:
(JSC::DebuggerActivation::createStructure):
(JSC::Arguments::createStructure):
- runtime/ArrayConstructor.h:
(JSC::ArrayConstructor::createStructure):
- runtime/ArrayPrototype.h:
(JSC::ArrayPrototype::createStructure):
(JSC::BooleanObject::createStructure):
- runtime/BooleanPrototype.h:
(JSC::BooleanPrototype::createStructure):
- runtime/DateConstructor.h:
(JSC::DateConstructor::createStructure):
(JSC::DateInstance::createStructure):
(JSC::DatePrototype::createStructure):
(JSC::ErrorInstance::createStructure):
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::createStructure):
(JSC::ExecutableBase::createStructure):
(JSC::NativeExecutable::createStructure):
(JSC::EvalExecutable::createStructure):
(JSC::ProgramExecutable::createStructure):
(JSC::FunctionExecutable::createStructure):
- runtime/FunctionPrototype.h:
(JSC::FunctionPrototype::createStructure):
(JSC::GetterSetter::createStructure):
- runtime/InternalFunction.h:
(JSC::InternalFunction::createStructure):
- runtime/JSAPIValueWrapper.h:
(JSC::JSAPIValueWrapper::createStructure):
(JSC::JSActivation::createStructure):
(JSC::JSArray::createStructure):
(JSC::JSByteArray::createStructure):
- runtime/JSByteArray.h:
- runtime/JSFunction.h:
(JSC::JSFunction::createStructure):
- runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::createStructure):
(JSC::JSNotAnObject::createStructure):
(JSC::JSONObject::createStructure):
(JSC::JSObject::createInheritorID):
(JSC::JSObject::createStructure):
(JSC::JSNonFinalObject::createStructure):
(JSC::JSFinalObject::createStructure):
(JSC::createEmptyObjectStructure):
- runtime/JSObjectWithGlobalObject.h:
(JSC::JSObjectWithGlobalObject::createStructure):
- runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure):
- runtime/JSStaticScopeObject.h:
(JSC::JSStaticScopeObject::createStructure):
(JSC::RopeBuilder::createStructure):
- runtime/JSVariableObject.h:
(JSC::JSVariableObject::createStructure):
- runtime/JSWrapperObject.h:
(JSC::JSWrapperObject::createStructure):
(JSC::MathObject::createStructure):
- runtime/NativeErrorConstructor.h:
(JSC::NativeErrorConstructor::createStructure):
(JSC::NativeErrorConstructor::constructorBody):
- runtime/NumberConstructor.h:
(JSC::NumberConstructor::createStructure):
(JSC::NumberObject::createStructure):
- runtime/NumberPrototype.h:
(JSC::NumberPrototype::createStructure):
- runtime/ObjectConstructor.h:
(JSC::ObjectConstructor::createStructure):
- runtime/ObjectPrototype.h:
(JSC::ObjectPrototype::createStructure):
(JSC::RegExp::createStructure):
- runtime/RegExpConstructor.h:
(JSC::RegExpConstructor::createStructure):
(JSC::RegExpObject::createStructure):
- runtime/RegExpPrototype.h:
(JSC::RegExpPrototype::createStructure):
(JSC::ScopeChainNode::createStructure):
- runtime/StrictEvalActivation.h:
(JSC::StrictEvalActivation::createStructure):
- runtime/StringConstructor.h:
(JSC::StringConstructor::createStructure):
(JSC::StringObject::createStructure):
- runtime/StringObjectThatMasqueradesAsUndefined.h:
(JSC::StringObjectThatMasqueradesAsUndefined::create):
(JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
- runtime/StringPrototype.h:
(JSC::StringPrototype::createStructure):
(JSC::Structure::Structure):
(JSC::Structure::visitChildren):
(JSC::Structure::create):
(JSC::Structure::globalObject):
(JSC::Structure::setGlobalObject):
- runtime/StructureChain.h:
(JSC::StructureChain::createStructure):
Source/JavaScriptGlue:
Update for Structure::create() requiring a global object.
(JSGlueGlobalObject::create):
(UserObjectImp::createStructure):
Source/WebCore:
Update calls to Structure::create() to pass the globalObject in,
and update the CodeGenerator to generate appropriate createStructure
methods.
- bindings/js/JSAudioConstructor.h:
(WebCore::JSAudioConstructor::createStructure):
- bindings/js/JSDOMBinding.h:
(WebCore::DOMConstructorObject::createStructure):
(WebCore::getDOMStructure):
- bindings/js/JSDOMGlobalObject.h:
(WebCore::JSDOMGlobalObject::createStructure):
(WebCore::getDOMConstructor):
- bindings/js/JSDOMWindowBase.h:
(WebCore::JSDOMWindowBase::createStructure):
- bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):
- bindings/js/JSDOMWindowShell.h:
(WebCore::JSDOMWindowShell::createStructure):
- bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::createStructure):
- bindings/js/JSImageConstructor.h:
(WebCore::JSImageConstructor::createStructure):
- bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
- bindings/js/JSOptionConstructor.h:
(WebCore::JSOptionConstructor::createStructure):
- bindings/js/JSWorkerContextBase.h:
(WebCore::JSWorkerContextBase::createStructure):
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorDeclaration):
- bridge/c/CRuntimeObject.h:
(JSC::Bindings::CRuntimeObject::createStructure):
(JSC::Bindings::CRuntimeMethod::createStructure):
- bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaRuntimeMethod::createStructure):
- bridge/jni/jsc/JavaRuntimeObject.h:
(JSC::Bindings::JavaRuntimeObject::createStructure):
- bridge/objc/ObjCRuntimeObject.h:
(JSC::Bindings::ObjCRuntimeObject::createStructure):
- bridge/objc/objc_instance.mm:
(ObjCRuntimeMethod::createStructure):
- bridge/objc/objc_runtime.h:
(JSC::Bindings::ObjcFallbackObjectImp::createStructure):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeMethod::createStructure):
(JSC::Bindings::RuntimeObject::createStructure):
Source/WebKit/mac:
Update for new Structure::create() globalObject parameter.
- Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyRuntimeMethod::createStructure):
- Plugins/Hosted/ProxyRuntimeObject.h:
(WebKit::ProxyRuntimeObject::createStructure):
Source/WebKit2:
Update for new Structure::create globalObject parameter.
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::JSNPMethod::create):
- WebProcess/Plugins/Netscape/JSNPMethod.h:
(WebKit::JSNPMethod::createStructure):
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::create):
- WebProcess/Plugins/Netscape/JSNPObject.h:
(WebKit::JSNPObject::createStructure):