De-virtualize JSObject::getPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=71306
Reviewed by Darin Adler.
Source/JavaScriptCore:
Added getPropertyNames to the MethodTable, changed all the virtual
implementations of getPropertyNames to static ones, and replaced
all call sites with corresponding lookups in the MethodTable.
* API/JSObjectRef.cpp:
(JSObjectCopyPropertyNames):
* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* debugger/DebuggerActivation.cpp:
(JSC::DebuggerActivation::getOwnPropertyNames):
* runtime/ClassInfo.h:
* runtime/JSCell.cpp:
(JSC::JSCell::getPropertyNames):
* runtime/JSCell.h:
* runtime/JSObject.cpp:
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnPropertyNames):
* runtime/JSObject.h:
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
* runtime/ScopeChain.cpp:
(JSC::ScopeChainNode::print):
* runtime/Structure.cpp:
(JSC::Structure::getPropertyNamesFromStructure):
* runtime/Structure.h:
Source/JavaScriptGlue:
Added getPropertyNames to the MethodTable, changed all the virtual
implementations of getPropertyNames to static ones, and replaced
all call sites with corresponding lookups in the MethodTable.
* JSUtils.cpp:
(KJSValueToCFTypeInternal):
* JSValueWrapper.cpp:
(JSValueWrapper::JSObjectCopyPropertyNames):
Source/WebCore:
No new tests.
Added getPropertyNames to the MethodTable, changed all the virtual
implementations of getPropertyNames to static ones, and replaced
all call sites with corresponding lookups in the MethodTable.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getPropertyNames):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::getPropertyNames):
* bindings/js/JSDOMWindowShell.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/NP_jsobject.cpp:
(_NPN_Enumerate):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariantMap):
Source/WebKit/mac:
Added getPropertyNames to the MethodTable, changed all the virtual
implementations of getPropertyNames to static ones, and replaced
all call sites with corresponding lookups in the MethodTable.
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::enumerate):
Source/WebKit2:
Added getPropertyNames to the MethodTable, changed all the virtual
implementations of getPropertyNames to static ones, and replaced
all call sites with corresponding lookups in the MethodTable.
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::enumerate):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@99256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
28 files changed