• mhahnenberg@apple.com's avatar
    Unzip initialization lists and constructors in JSCell hierarchy (5/7) · 7317a7f6
    mhahnenberg@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=67420
    
    Reviewed by Geoffrey Garen.
    
    Source/JavaScriptCore:
    
    Completed the fifth level of the refactoring to add finishCreation()
    methods to all classes within the JSCell hierarchy with non-trivial
    constructor bodies.
    
    This primarily consists of pushing the calls to finishCreation() down
    into the constructors of the subclasses of the second level of the hierarchy
    as well as pulling the finishCreation() calls out into the class's corresponding
    create() method if it has one.  Doing both simultaneously allows us to
    maintain the invariant that the finishCreation() method chain is called exactly
    once during the creation of an object, since calling it any other number of
    times (0, 2, or more) will cause an assertion failure.
    
    * API/JSCallbackConstructor.cpp:
    (JSC::JSCallbackConstructor::JSCallbackConstructor):
    * API/JSCallbackConstructor.h:
    (JSC::JSCallbackConstructor::create):
    * API/JSCallbackFunction.cpp:
    (JSC::JSCallbackFunction::JSCallbackFunction):
    (JSC::JSCallbackFunction::finishCreation):
    * API/JSCallbackFunction.h:
    * API/JSCallbackObject.h:
    * API/JSCallbackObjectFunctions.h:
    (JSC::::JSCallbackObject):
    (JSC::::finishCreation):
    * JavaScriptCore.exp:
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
    * debugger/DebuggerActivation.cpp:
    * debugger/DebuggerActivation.h:
    (JSC::DebuggerActivation::create):
    * jsc.cpp:
    (GlobalObject::finishCreation):
    (GlobalObject::GlobalObject):
    * runtime/ArrayConstructor.cpp:
    (JSC::ArrayConstructor::ArrayConstructor):
    (JSC::ArrayConstructor::finishCreation):
    * runtime/ArrayConstructor.h:
    * runtime/ArrayPrototype.cpp:
    (JSC::ArrayPrototype::ArrayPrototype):
    * runtime/ArrayPrototype.h:
    (JSC::ArrayPrototype::create):
    * runtime/BooleanConstructor.cpp:
    (JSC::BooleanConstructor::BooleanConstructor):
    (JSC::BooleanConstructor::finishCreation):
    * runtime/BooleanConstructor.h:
    * runtime/BooleanObject.cpp:
    (JSC::BooleanObject::BooleanObject):
    * runtime/BooleanObject.h:
    (JSC::BooleanObject::create):
    * runtime/BooleanPrototype.cpp:
    (JSC::BooleanPrototype::BooleanPrototype):
    (JSC::BooleanPrototype::finishCreation):
    * runtime/BooleanPrototype.h:
    * runtime/DateConstructor.cpp:
    (JSC::DateConstructor::DateConstructor):
    (JSC::DateConstructor::finishCreation):
    * runtime/DateConstructor.h:
    * runtime/DateInstance.cpp:
    (JSC::DateInstance::DateInstance):
    * runtime/DateInstance.h:
    (JSC::DateInstance::create):
    * runtime/DatePrototype.cpp:
    (JSC::DatePrototype::DatePrototype):
    (JSC::DatePrototype::finishCreation):
    * runtime/DatePrototype.h:
    * runtime/Error.cpp:
    (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
    * runtime/ErrorConstructor.cpp:
    (JSC::ErrorConstructor::ErrorConstructor):
    (JSC::ErrorConstructor::finishCreation):
    * runtime/ErrorConstructor.h:
    * runtime/ErrorPrototype.cpp:
    (JSC::ErrorPrototype::ErrorPrototype):
    * runtime/ErrorPrototype.h:
    (JSC::ErrorPrototype::create):
    * runtime/FunctionConstructor.cpp:
    (JSC::FunctionConstructor::FunctionConstructor):
    (JSC::FunctionConstructor::finishCreation):
    * runtime/FunctionConstructor.h:
    * runtime/FunctionPrototype.cpp:
    (JSC::FunctionPrototype::FunctionPrototype):
    (JSC::FunctionPrototype::finishCreation):
    * runtime/FunctionPrototype.h:
    * runtime/InternalFunction.cpp:
    (JSC::InternalFunction::InternalFunction):
    * runtime/InternalFunction.h:
    * runtime/JSActivation.cpp:
    (JSC::JSActivation::JSActivation):
    * runtime/JSActivation.h:
    (JSC::JSActivation::create):
    * runtime/JSGlobalObject.h:
    (JSC::JSGlobalObject::create):
    (JSC::JSGlobalObject::JSGlobalObject):
    * runtime/JSONObject.cpp:
    (JSC::JSONObject::JSONObject):
    * runtime/JSONObject.h:
    (JSC::JSONObject::create):
    * runtime/JSStaticScopeObject.h:
    (JSC::JSStaticScopeObject::create):
    (JSC::JSStaticScopeObject::JSStaticScopeObject):
    * runtime/JSString.cpp:
    (JSC::StringObject::create):
    * runtime/MathObject.cpp:
    (JSC::MathObject::MathObject):
    * runtime/MathObject.h:
    (JSC::MathObject::create):
    * runtime/NativeErrorConstructor.cpp:
    (JSC::NativeErrorConstructor::NativeErrorConstructor):
    * runtime/NativeErrorConstructor.h:
    (JSC::NativeErrorConstructor::finishCreation):
    * runtime/NativeErrorPrototype.cpp:
    (JSC::NativeErrorPrototype::NativeErrorPrototype):
    (JSC::NativeErrorPrototype::finishCreation):
    * runtime/NativeErrorPrototype.h:
    * runtime/NumberConstructor.cpp:
    (JSC::NumberConstructor::NumberConstructor):
    (JSC::NumberConstructor::finishCreation):
    * runtime/NumberConstructor.h:
    * runtime/NumberObject.cpp:
    (JSC::NumberObject::NumberObject):
    * runtime/NumberObject.h:
    (JSC::NumberObject::create):
    * runtime/NumberPrototype.cpp:
    (JSC::NumberPrototype::NumberPrototype):
    (JSC::NumberPrototype::finishCreation):
    * runtime/NumberPrototype.h:
    * runtime/ObjectConstructor.cpp:
    (JSC::ObjectConstructor::ObjectConstructor):
    (JSC::ObjectConstructor::finishCreation):
    * runtime/ObjectConstructor.h:
    * runtime/RegExpConstructor.cpp:
    (JSC::RegExpConstructor::RegExpConstructor):
    (JSC::RegExpConstructor::finishCreation):
    (JSC::RegExpMatchesArray::RegExpMatchesArray):
    * runtime/RegExpConstructor.h:
    * runtime/RegExpMatchesArray.h:
    (JSC::RegExpMatchesArray::create):
    * runtime/RegExpObject.cpp:
    (JSC::RegExpObject::RegExpObject):
    * runtime/RegExpObject.h:
    (JSC::RegExpObject::create):
    * runtime/RegExpPrototype.cpp:
    (JSC::RegExpPrototype::RegExpPrototype):
    * runtime/StringConstructor.cpp:
    (JSC::StringConstructor::StringConstructor):
    (JSC::StringConstructor::finishCreation):
    * runtime/StringConstructor.h:
    * runtime/StringObject.cpp:
    (JSC::StringObject::StringObject):
    * runtime/StringObject.h:
    (JSC::StringObject::create):
    * runtime/StringObjectThatMasqueradesAsUndefined.h:
    (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
    * runtime/StringPrototype.cpp:
    (JSC::StringPrototype::StringPrototype):
    (JSC::StringPrototype::finishCreation):
    * runtime/StringPrototype.h:
    
    Source/JavaScriptGlue:
    
    Completed the fifth level of the refactoring to add finishCreation()
    methods to all classes within the JSCell hierarchy with non-trivial
    constructor bodies.
    
    This primarily consists of pushing the calls to finishCreation() down
    into the constructors of the subclasses of the second level of the hierarchy
    as well as pulling the finishCreation() calls out into the class's corresponding
    create() method if it has one.  Doing both simultaneously allows us to
    maintain the invariant that the finishCreation() method chain is called exactly
    once during the creation of an object, since calling it any other number of
    times (0, 2, or more) will cause an assertion failure.
    
    * JSRun.cpp:
    (JSGlueGlobalObject::JSGlueGlobalObject):
    
    Source/WebCore:
    
    No new tests.
    
    Completed the fifth level of the refactoring to add finishCreation()
    methods to all classes within the JSCell hierarchy with non-trivial
    constructor bodies.
    
    This primarily consists of pushing the calls to finishCreation() down
    into the constructors of the subclasses of the second level of the hierarchy
    as well as pulling the finishCreation() calls out into the class's corresponding
    create() method if it has one.  Doing both simultaneously allows us to
    maintain the invariant that the finishCreation() method chain is called exactly
    once during the creation of an object, since calling it any other number of
    times (0, 2, or more) will cause an assertion failure.
    
    * WebCore.exp.in:
    * bindings/js/JSDOMBinding.h:
    (WebCore::DOMConstructorObject::DOMConstructorObject):
    * bindings/js/JSDOMGlobalObject.cpp:
    (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
    (WebCore::JSDOMGlobalObject::finishCreation):
    * bindings/js/JSDOMGlobalObject.h:
    * bindings/js/JSDOMWindowShell.cpp:
    * bindings/js/JSDOMWindowShell.h:
    (WebCore::JSDOMWindowShell::create):
    * bindings/js/JSDOMWrapper.h:
    (WebCore::JSDOMWrapper::JSDOMWrapper):
    * bindings/scripts/CodeGeneratorJS.pm:
    (GenerateImplementation):
    * bindings/scripts/test/JS/JSTestInterface.cpp:
    (WebCore::JSTestInterface::JSTestInterface):
    * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
    (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
    * bindings/scripts/test/JS/JSTestObj.cpp:
    (WebCore::JSTestObj::JSTestObj):
    * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
    (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
    * bridge/c/CRuntimeObject.cpp:
    (JSC::Bindings::CRuntimeObject::CRuntimeObject):
    (JSC::Bindings::CRuntimeObject::finishCreation):
    * bridge/c/CRuntimeObject.h:
    * bridge/jni/jsc/JavaRuntimeObject.cpp:
    (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
    (JSC::Bindings::JavaRuntimeObject::finishCreation):
    * bridge/jni/jsc/JavaRuntimeObject.h:
    * bridge/objc/ObjCRuntimeObject.h:
    * bridge/objc/ObjCRuntimeObject.mm:
    (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
    (JSC::Bindings::ObjCRuntimeObject::finishCreation):
    * bridge/objc/objc_runtime.h:
    (JSC::Bindings::ObjcFallbackObjectImp::create):
    * bridge/objc/objc_runtime.mm:
    (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
    * bridge/qt/qt_instance.cpp:
    (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
    * bridge/qt/qt_pixmapruntime.cpp:
    (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
    * bridge/qt/qt_runtime.cpp:
    (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
    (JSC::Bindings::QtRuntimeMethod::finishCreation):
    * bridge/qt/qt_runtime.h:
    * bridge/runtime_array.cpp:
    (JSC::RuntimeArray::RuntimeArray):
    * bridge/runtime_array.h:
    (JSC::RuntimeArray::create):
    * bridge/runtime_method.cpp:
    (JSC::RuntimeMethod::RuntimeMethod):
    (JSC::RuntimeMethod::finishCreation):
    * bridge/runtime_method.h:
    * bridge/runtime_object.cpp:
    (JSC::Bindings::RuntimeObject::RuntimeObject):
    * bridge/runtime_object.h:
    (JSC::Bindings::RuntimeObject::create):
    
    Source/WebKit/mac:
    
    Completed the fifth level of the refactoring to add finishCreation()
    methods to all classes within the JSCell hierarchy with non-trivial
    constructor bodies.
    
    This primarily consists of pushing the calls to finishCreation() down
    into the constructors of the subclasses of the second level of the hierarchy
    as well as pulling the finishCreation() calls out into the class's corresponding
    create() method if it has one.  Doing both simultaneously allows us to
    maintain the invariant that the finishCreation() method chain is called exactly
    once during the creation of an object, since calling it any other number of
    times (0, 2, or more) will cause an assertion failure.
    
    * Plugins/Hosted/ProxyRuntimeObject.h:
    * Plugins/Hosted/ProxyRuntimeObject.mm:
    (WebKit::ProxyRuntimeObject::ProxyRuntimeObject):
    (WebKit::ProxyRuntimeObject::finishCreation):
    
    Source/WebKit2:
    
    Completed the fifth level of the refactoring to add finishCreation()
    methods to all classes within the JSCell hierarchy with non-trivial
    constructor bodies.
    
    This primarily consists of pushing the calls to finishCreation() down
    into the constructors of the subclasses of the second level of the hierarchy
    as well as pulling the finishCreation() calls out into the class's corresponding
    create() method if it has one.  Doing both simultaneously allows us to
    maintain the invariant that the finishCreation() method chain is called exactly
    once during the creation of an object, since calling it any other number of
    times (0, 2, or more) will cause an assertion failure.
    
    * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
    (WebKit::JSNPMethod::JSNPMethod):
    (WebKit::JSNPMethod::finishCreation):
    * WebProcess/Plugins/Netscape/JSNPMethod.h:
    (WebKit::JSNPMethod::create):
    * WebProcess/Plugins/Netscape/JSNPObject.cpp:
    (WebKit::JSNPObject::JSNPObject):
    * WebProcess/Plugins/Netscape/JSNPObject.h:
    (WebKit::JSNPObject::create):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    7317a7f6