Ignore:
Timestamp:
Nov 3, 2011, 6:32:18 PM (14 years ago)
Author:
[email protected]
Message:

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):

(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):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptGlue/JSValueWrapper.cpp

    r98415 r99256  
    7878        JSObject* object = ptr->GetValue().toObject(exec);
    7979        PropertyNameArray propNames(exec);
    80         object->getPropertyNames(exec, propNames);
     80        object->methodTable()->getPropertyNames(object, exec, propNames, ExcludeDontEnumProperties);
    8181        PropertyNameArray::const_iterator iterator = propNames.begin();
    8282
Note: See TracChangeset for help on using the changeset viewer.