• oliver@apple.com's avatar
    Refactor static getter function prototype to include thisValue in addition to the base object · ae0687ba
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=124461
    
    Reviewed by Geoffrey Garen.
    
    Source/JavaScriptCore:
    
    Add thisValue parameter to static getter prototype, and switch
    from JSValue to EncodedJSValue for parameters and return value.
    
    Currently none of the static getters use the thisValue, but
    separating out the refactoring will prevent future changes
    from getting lost in the noise of refactoring.  This means
    that this patch does not result in any change in behaviour.
    
    * API/JSCallbackObject.h:
    * API/JSCallbackObjectFunctions.h:
    (JSC::::asCallbackObject):
    (JSC::::staticFunctionGetter):
    (JSC::::callbackGetter):
    * jit/JITOperations.cpp:
    * runtime/JSActivation.cpp:
    (JSC::JSActivation::argumentsGetter):
    * runtime/JSActivation.h:
    * runtime/JSFunction.cpp:
    (JSC::JSFunction::argumentsGetter):
    (JSC::JSFunction::callerGetter):
    (JSC::JSFunction::lengthGetter):
    (JSC::JSFunction::nameGetter):
    * runtime/JSFunction.h:
    * runtime/JSObject.h:
    (JSC::PropertySlot::getValue):
    * runtime/NumberConstructor.cpp:
    (JSC::numberConstructorNaNValue):
    (JSC::numberConstructorNegInfinity):
    (JSC::numberConstructorPosInfinity):
    (JSC::numberConstructorMaxValue):
    (JSC::numberConstructorMinValue):
    * runtime/PropertySlot.h:
    * runtime/RegExpConstructor.cpp:
    (JSC::asRegExpConstructor):
    (JSC::regExpConstructorDollar1):
    (JSC::regExpConstructorDollar2):
    (JSC::regExpConstructorDollar3):
    (JSC::regExpConstructorDollar4):
    (JSC::regExpConstructorDollar5):
    (JSC::regExpConstructorDollar6):
    (JSC::regExpConstructorDollar7):
    (JSC::regExpConstructorDollar8):
    (JSC::regExpConstructorDollar9):
    (JSC::regExpConstructorInput):
    (JSC::regExpConstructorMultiline):
    (JSC::regExpConstructorLastMatch):
    (JSC::regExpConstructorLastParen):
    (JSC::regExpConstructorLeftContext):
    (JSC::regExpConstructorRightContext):
    * runtime/RegExpObject.cpp:
    (JSC::asRegExpObject):
    (JSC::regExpObjectGlobal):
    (JSC::regExpObjectIgnoreCase):
    (JSC::regExpObjectMultiline):
    (JSC::regExpObjectSource):
    
    Source/WebCore:
    
    Change bindings codegen to produce static getter functions
    with the correct types.  Also update the many custom implementations
    to the new type.
    
    No change in behaviour.
    
    * bindings/js/JSCSSStyleDeclarationCustom.cpp:
    (WebCore::cssPropertyGetterPixelOrPosPrefixCallback):
    (WebCore::cssPropertyGetterCallback):
    * bindings/js/JSDOMBinding.cpp:
    (WebCore::objectToStringFunctionGetter):
    * bindings/js/JSDOMBinding.h:
    * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
    (WebCore::JSDOMMimeTypeArray::nameGetter):
    * bindings/js/JSDOMPluginArrayCustom.cpp:
    (WebCore::JSDOMPluginArray::nameGetter):
    * bindings/js/JSDOMPluginCustom.cpp:
    (WebCore::JSDOMPlugin::nameGetter):
    * bindings/js/JSDOMStringMapCustom.cpp:
    (WebCore::JSDOMStringMap::nameGetter):
    * bindings/js/JSDOMWindowCustom.cpp:
    (WebCore::nonCachingStaticFunctionGetter):
    (WebCore::childFrameGetter):
    (WebCore::indexGetter):
    (WebCore::namedItemGetter):
    * bindings/js/JSHTMLAllCollectionCustom.cpp:
    (WebCore::JSHTMLAllCollection::nameGetter):
    * bindings/js/JSHTMLCollectionCustom.cpp:
    (WebCore::JSHTMLCollection::nameGetter):
    * bindings/js/JSHTMLDocumentCustom.cpp:
    (WebCore::JSHTMLDocument::nameGetter):
    * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
    (WebCore::JSHTMLFormControlsCollection::nameGetter):
    * bindings/js/JSHTMLFormElementCustom.cpp:
    (WebCore::JSHTMLFormElement::nameGetter):
    * bindings/js/JSHTMLFrameSetElementCustom.cpp:
    (WebCore::JSHTMLFrameSetElement::nameGetter):
    * bindings/js/JSHistoryCustom.cpp:
    (WebCore::nonCachingStaticBackFunctionGetter):
    (WebCore::nonCachingStaticForwardFunctionGetter):
    (WebCore::nonCachingStaticGoFunctionGetter):
    * bindings/js/JSJavaScriptCallFrameCustom.cpp:
    (WebCore::JSJavaScriptCallFrame::scopeType):
    * bindings/js/JSLocationCustom.cpp:
    (WebCore::nonCachingStaticReplaceFunctionGetter):
    (WebCore::nonCachingStaticReloadFunctionGetter):
    (WebCore::nonCachingStaticAssignFunctionGetter):
    * bindings/js/JSNamedNodeMapCustom.cpp:
    (WebCore::JSNamedNodeMap::nameGetter):
    * bindings/js/JSNodeListCustom.cpp:
    (WebCore::JSNodeList::nameGetter):
    * bindings/js/JSPluginElementFunctions.cpp:
    (WebCore::pluginElementPropertyGetter):
    * bindings/js/JSPluginElementFunctions.h:
    * bindings/js/JSRTCStatsResponseCustom.cpp:
    (WebCore::JSRTCStatsResponse::nameGetter):
    * bindings/js/JSStorageCustom.cpp:
    (WebCore::JSStorage::nameGetter):
    * bindings/js/JSStyleSheetListCustom.cpp:
    (WebCore::JSStyleSheetList::nameGetter):
    * bindings/scripts/CodeGeneratorJS.pm:
    (GenerateHeader):
    (GenerateImplementation):
    (GenerateParametersCheck):
    * bridge/runtime_array.cpp:
    (JSC::RuntimeArray::lengthGetter):
    (JSC::RuntimeArray::indexGetter):
    * bridge/runtime_array.h:
    * bridge/runtime_method.cpp:
    (JSC::RuntimeMethod::lengthGetter):
    * bridge/runtime_method.h:
    * bridge/runtime_object.cpp:
    (JSC::Bindings::RuntimeObject::fallbackObjectGetter):
    (JSC::Bindings::RuntimeObject::fieldGetter):
    (JSC::Bindings::RuntimeObject::methodGetter):
    * bridge/runtime_object.h:
    
    Source/WebKit2:
    
    Update the WK2 JSC usage to the new static getter API
    
    * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
    (WebKit::callMethod):
    * WebProcess/Plugins/Netscape/JSNPObject.cpp:
    (WebKit::callNPJSObject):
    (WebKit::constructWithConstructor):
    (WebKit::JSNPObject::propertyGetter):
    (WebKit::JSNPObject::methodGetter):
    * WebProcess/Plugins/Netscape/JSNPObject.h:
    * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
    (WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
    (WebKit::NPRuntimeObjectMap::finalize):
    * WebProcess/WebPage/WebFrame.cpp:
    (WebKit::WebFrame::frameForContext):
    (WebKit::WebFrame::counterValue):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160208 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ae0687ba