Commit f0418c85 authored by mhahnenberg@apple.com's avatar mhahnenberg@apple.com

Rename getOwnPropertySlot to getOwnPropertySlotVirtual

https://bugs.webkit.org/show_bug.cgi?id=69810

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable 
in ClassInfo.

Also added a few static getOwnPropertySlot functions where they had been overlooked 
before (especially in CodeGeneratorJS.pm).

* API/JSCallbackObject.h:
* API/JSCallbackObjectFunctions.h:
(JSC::::getOwnPropertySlotVirtual):
(JSC::::getOwnPropertySlot):
(JSC::::getOwnPropertyDescriptor):
(JSC::::staticFunctionGetter):
* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* debugger/DebuggerActivation.cpp:
(JSC::DebuggerActivation::getOwnPropertySlotVirtual):
(JSC::DebuggerActivation::getOwnPropertySlot):
* debugger/DebuggerActivation.h:
* runtime/Arguments.cpp:
(JSC::Arguments::getOwnPropertySlotVirtual):
(JSC::Arguments::getOwnPropertySlot):
* runtime/Arguments.h:
* runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::getOwnPropertySlotVirtual):
(JSC::ArrayConstructor::getOwnPropertySlot):
* runtime/ArrayConstructor.h:
* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::getOwnPropertySlotVirtual):
* runtime/ArrayPrototype.h:
* runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::getOwnPropertySlotVirtual):
* runtime/BooleanPrototype.h:
* runtime/DateConstructor.cpp:
(JSC::DateConstructor::getOwnPropertySlotVirtual):
* runtime/DateConstructor.h:
* runtime/DatePrototype.cpp:
(JSC::DatePrototype::getOwnPropertySlotVirtual):
* runtime/DatePrototype.h:
* runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::getOwnPropertySlotVirtual):
* runtime/ErrorPrototype.h:
* runtime/JSActivation.cpp:
(JSC::JSActivation::getOwnPropertySlotVirtual):
* runtime/JSActivation.h:
* runtime/JSArray.cpp:
(JSC::JSArray::getOwnPropertySlotVirtual):
(JSC::JSArray::getOwnPropertySlot):
* runtime/JSArray.h:
* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::getOwnPropertySlotVirtual):
* runtime/JSBoundFunction.h:
* runtime/JSByteArray.cpp:
(JSC::JSByteArray::getOwnPropertySlotVirtual):
* runtime/JSByteArray.h:
* runtime/JSCell.cpp:
(JSC::JSCell::getOwnPropertySlotVirtual):
* runtime/JSCell.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlotVirtual):
(JSC::JSFunction::getOwnPropertyDescriptor):
(JSC::JSFunction::getOwnPropertyNames):
(JSC::JSFunction::put):
* runtime/JSFunction.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::getOwnPropertySlotVirtual):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::hasOwnPropertyForWrite):
* runtime/JSNotAnObject.cpp:
(JSC::JSNotAnObject::getOwnPropertySlotVirtual):
* runtime/JSNotAnObject.h:
* runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::JSONObject::getOwnPropertySlotVirtual):
(JSC::Walker::walk):
* runtime/JSONObject.h:
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertySlotVirtual):
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::hasOwnProperty):
* runtime/JSObject.h:
(JSC::JSObject::getOwnPropertySlotVirtual):
(JSC::JSCell::fastGetOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSValue::get):
* runtime/JSStaticScopeObject.cpp:
(JSC::JSStaticScopeObject::getOwnPropertySlotVirtual):
* runtime/JSStaticScopeObject.h:
* runtime/JSString.cpp:
(JSC::JSString::getOwnPropertySlotVirtual):
(JSC::JSString::getOwnPropertySlot):
* runtime/JSString.h:
* runtime/Lookup.h:
(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
(JSC::getStaticValueSlot):
* runtime/MathObject.cpp:
(JSC::MathObject::getOwnPropertySlotVirtual):
* runtime/MathObject.h:
* runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::getOwnPropertySlotVirtual):
* runtime/NumberConstructor.h:
* runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::getOwnPropertySlotVirtual):
* runtime/NumberPrototype.h:
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::getOwnPropertySlotVirtual):
* runtime/ObjectConstructor.h:
* runtime/ObjectPrototype.cpp:
(JSC::ObjectPrototype::getOwnPropertySlotVirtual):
* runtime/ObjectPrototype.h:
* runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getOwnPropertySlotVirtual):
* runtime/RegExpConstructor.h:
* runtime/RegExpMatchesArray.h:
(JSC::RegExpMatchesArray::getOwnPropertySlotVirtual):
* runtime/RegExpObject.cpp:
(JSC::RegExpObject::getOwnPropertySlotVirtual):
* runtime/RegExpObject.h:
* runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::getOwnPropertySlotVirtual):
* runtime/RegExpPrototype.h:
* runtime/StringConstructor.cpp:
(JSC::StringConstructor::getOwnPropertySlotVirtual):
* runtime/StringConstructor.h:
* runtime/StringObject.cpp:
(JSC::StringObject::getOwnPropertySlotVirtual):
* runtime/StringObject.h:
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::getOwnPropertySlotVirtual):
* runtime/StringPrototype.h:

Source/JavaScriptGlue: 

Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable 
in ClassInfo.

Also added a few static getOwnPropertySlot functions where they had been overlooked 
before (especially in CodeGeneratorJS.pm).

* UserObjectImp.cpp:
(UserObjectImp::getOwnPropertySlotVirtual):
* UserObjectImp.h:

Source/WebCore: 

No new tests.

Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable 
in ClassInfo.

Also added a few static getOwnPropertySlot functions where they had been overlooked 
before (especially in CodeGeneratorJS.pm).

* WebCore.exp.in:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlotVirtual):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::DialogHandler::returnValue):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::getOwnPropertySlotVirtual):
(WebCore::JSDOMWindowShell::getOwnPropertySlot):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::getOwnPropertySlotDelegate):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::getSparseIndex):
(WebCore::CloneSerializer::getProperty):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorDeclaration):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestInterface::getOwnPropertySlotVirtual):
(WebCore::JSTestInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListenerConstructor::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestObjConstructor::getOwnPropertySlot):
(WebCore::JSTestObjPrototype::getOwnPropertySlotVirtual):
(WebCore::JSTestObjPrototype::getOwnPropertySlot):
(WebCore::JSTestObj::getOwnPropertySlotVirtual):
(WebCore::JSTestObj::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlotVirtual):
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertySlotVirtual):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::getOwnPropertySlot):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::getOwnPropertySlotVirtual):
(JSC::Bindings::QtRuntimeConnectionMethod::getOwnPropertySlotVirtual):
* bridge/qt/qt_runtime.h:
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertySlotVirtual):
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getOwnPropertySlotVirtual):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getOwnPropertySlotVirtual):
* bridge/runtime_object.h:

Source/WebKit2: 

Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable 
in ClassInfo.

Also added a few static getOwnPropertySlot functions where they had been overlooked 
before (especially in CodeGeneratorJS.pm).

* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::getOwnPropertySlotVirtual):
* WebProcess/Plugins/Netscape/JSNPObject.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent dfe18a56
......@@ -178,7 +178,8 @@ protected:
private:
virtual UString className() const;
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
......
......@@ -124,20 +124,27 @@ UString JSCallbackObject<Parent>::className() const
}
template <class Parent>
bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool JSCallbackObject<Parent>::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
template <class Parent>
bool JSCallbackObject<Parent>::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
JSCallbackObject* thisObject = static_cast<JSCallbackObject*>(cell);
JSContextRef ctx = toRef(exec);
JSObjectRef thisRef = toRef(this);
JSObjectRef thisRef = toRef(thisObject);
RefPtr<OpaqueJSString> propertyNameRef;
for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
for (JSClassRef jsClass = thisObject->classRef(); jsClass; jsClass = jsClass->parentClass) {
// optional optimization to bypass getProperty in cases when we only need to know if the property exists
if (JSObjectHasPropertyCallback hasProperty = jsClass->hasProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
APICallbackShim callbackShim(exec);
if (hasProperty(ctx, thisRef, propertyNameRef.get())) {
slot.setCustom(this, callbackGetter);
slot.setCustom(thisObject, callbackGetter);
return true;
}
} else if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) {
......@@ -162,7 +169,7 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif
if (OpaqueJSClassStaticValuesTable* staticValues = jsClass->staticValues(exec)) {
if (staticValues->contains(propertyName.impl())) {
JSValue value = getStaticValue(exec, propertyName);
JSValue value = thisObject->getStaticValue(exec, propertyName);
if (value) {
slot.setValue(value);
return true;
......@@ -172,20 +179,20 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif
if (OpaqueJSClassStaticFunctionsTable* staticFunctions = jsClass->staticFunctions(exec)) {
if (staticFunctions->contains(propertyName.impl())) {
slot.setCustom(this, staticFunctionGetter);
slot.setCustom(thisObject, staticFunctionGetter);
return true;
}
}
}
return Parent::getOwnPropertySlot(exec, propertyName, slot);
return Parent::getOwnPropertySlot(thisObject, exec, propertyName, slot);
}
template <class Parent>
bool JSCallbackObject<Parent>::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
{
PropertySlot slot;
if (getOwnPropertySlot(exec, propertyName, slot)) {
if (getOwnPropertySlotVirtual(exec, propertyName, slot)) {
// Ideally we should return an access descriptor, but returning a value descriptor is better than nothing.
JSValue value = slot.getValue(exec, propertyName);
if (!exec->hadException())
......@@ -536,7 +543,7 @@ JSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, JSValue
// Check for cached or override property.
PropertySlot slot2(thisObj);
if (thisObj->Parent::getOwnPropertySlot(exec, propertyName, slot2))
if (Parent::getOwnPropertySlot(thisObj, exec, propertyName, slot2))
return slot2.getValue(exec, propertyName);
for (JSClassRef jsClass = thisObj->classRef(); jsClass; jsClass = jsClass->parentClass) {
......
2011-10-14 Mark Hahnenberg <mhahnenberg@apple.com>
Rename getOwnPropertySlot to getOwnPropertySlotVirtual
https://bugs.webkit.org/show_bug.cgi?id=69810
Reviewed by Geoffrey Garen.
Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable
in ClassInfo.
Also added a few static getOwnPropertySlot functions where they had been overlooked
before (especially in CodeGeneratorJS.pm).
* API/JSCallbackObject.h:
* API/JSCallbackObjectFunctions.h:
(JSC::::getOwnPropertySlotVirtual):
(JSC::::getOwnPropertySlot):
(JSC::::getOwnPropertyDescriptor):
(JSC::::staticFunctionGetter):
* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* debugger/DebuggerActivation.cpp:
(JSC::DebuggerActivation::getOwnPropertySlotVirtual):
(JSC::DebuggerActivation::getOwnPropertySlot):
* debugger/DebuggerActivation.h:
* runtime/Arguments.cpp:
(JSC::Arguments::getOwnPropertySlotVirtual):
(JSC::Arguments::getOwnPropertySlot):
* runtime/Arguments.h:
* runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::getOwnPropertySlotVirtual):
(JSC::ArrayConstructor::getOwnPropertySlot):
* runtime/ArrayConstructor.h:
* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::getOwnPropertySlotVirtual):
* runtime/ArrayPrototype.h:
* runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::getOwnPropertySlotVirtual):
* runtime/BooleanPrototype.h:
* runtime/DateConstructor.cpp:
(JSC::DateConstructor::getOwnPropertySlotVirtual):
* runtime/DateConstructor.h:
* runtime/DatePrototype.cpp:
(JSC::DatePrototype::getOwnPropertySlotVirtual):
* runtime/DatePrototype.h:
* runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::getOwnPropertySlotVirtual):
* runtime/ErrorPrototype.h:
* runtime/JSActivation.cpp:
(JSC::JSActivation::getOwnPropertySlotVirtual):
* runtime/JSActivation.h:
* runtime/JSArray.cpp:
(JSC::JSArray::getOwnPropertySlotVirtual):
(JSC::JSArray::getOwnPropertySlot):
* runtime/JSArray.h:
* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::getOwnPropertySlotVirtual):
* runtime/JSBoundFunction.h:
* runtime/JSByteArray.cpp:
(JSC::JSByteArray::getOwnPropertySlotVirtual):
* runtime/JSByteArray.h:
* runtime/JSCell.cpp:
(JSC::JSCell::getOwnPropertySlotVirtual):
* runtime/JSCell.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlotVirtual):
(JSC::JSFunction::getOwnPropertyDescriptor):
(JSC::JSFunction::getOwnPropertyNames):
(JSC::JSFunction::put):
* runtime/JSFunction.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::getOwnPropertySlotVirtual):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::hasOwnPropertyForWrite):
* runtime/JSNotAnObject.cpp:
(JSC::JSNotAnObject::getOwnPropertySlotVirtual):
* runtime/JSNotAnObject.h:
* runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::JSONObject::getOwnPropertySlotVirtual):
(JSC::Walker::walk):
* runtime/JSONObject.h:
* runtime/JSObject.cpp:
(JSC::JSObject::getOwnPropertySlotVirtual):
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::hasOwnProperty):
* runtime/JSObject.h:
(JSC::JSObject::getOwnPropertySlotVirtual):
(JSC::JSCell::fastGetOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSValue::get):
* runtime/JSStaticScopeObject.cpp:
(JSC::JSStaticScopeObject::getOwnPropertySlotVirtual):
* runtime/JSStaticScopeObject.h:
* runtime/JSString.cpp:
(JSC::JSString::getOwnPropertySlotVirtual):
(JSC::JSString::getOwnPropertySlot):
* runtime/JSString.h:
* runtime/Lookup.h:
(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
(JSC::getStaticValueSlot):
* runtime/MathObject.cpp:
(JSC::MathObject::getOwnPropertySlotVirtual):
* runtime/MathObject.h:
* runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::getOwnPropertySlotVirtual):
* runtime/NumberConstructor.h:
* runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::getOwnPropertySlotVirtual):
* runtime/NumberPrototype.h:
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::getOwnPropertySlotVirtual):
* runtime/ObjectConstructor.h:
* runtime/ObjectPrototype.cpp:
(JSC::ObjectPrototype::getOwnPropertySlotVirtual):
* runtime/ObjectPrototype.h:
* runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getOwnPropertySlotVirtual):
* runtime/RegExpConstructor.h:
* runtime/RegExpMatchesArray.h:
(JSC::RegExpMatchesArray::getOwnPropertySlotVirtual):
* runtime/RegExpObject.cpp:
(JSC::RegExpObject::getOwnPropertySlotVirtual):
* runtime/RegExpObject.h:
* runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::getOwnPropertySlotVirtual):
* runtime/RegExpPrototype.h:
* runtime/StringConstructor.cpp:
(JSC::StringConstructor::getOwnPropertySlotVirtual):
* runtime/StringConstructor.h:
* runtime/StringObject.cpp:
(JSC::StringObject::getOwnPropertySlotVirtual):
* runtime/StringObject.h:
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::getOwnPropertySlotVirtual):
* runtime/StringPrototype.h:
2011-10-14 Gavin Barraclough <baraclough@apple.com>
Most built-in properties are not deletable
......@@ -147,8 +147,6 @@ __ZN3JSC12SamplingTool5setupEv
__ZN3JSC12SmallStrings17createEmptyStringEPNS_12JSGlobalDataE
__ZN3JSC12SmallStrings27createSingleCharacterStringEPNS_12JSGlobalDataEh
__ZN3JSC12StringObject14finishCreationERNS_12JSGlobalDataEPNS_8JSStringE
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC12StringObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
__ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC12StringObject6s_infoE
......@@ -166,8 +164,9 @@ __ZN3JSC14JSGlobalObject13clearRareDataEPNS_6JSCellE
__ZN3JSC14JSGlobalObject13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE
__ZN3JSC14JSGlobalObject16addStaticGlobalsEPNS0_18GlobalPropertyInfoEi
__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
__ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC14JSGlobalObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC14JSGlobalObject25getOwnPropertySlotVirtualEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC14JSGlobalObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
__ZN3JSC14JSGlobalObject6s_infoE
......@@ -261,8 +260,8 @@ __ZN3JSC6JSCell10putVirtualEPNS_9ExecStateEjNS_7JSValueE
__ZN3JSC6JSCell11getCallDataEPS0_RNS_8CallDataE
__ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateEj
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC6JSCell25getOwnPropertySlotVirtualEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC6JSCell25getOwnPropertySlotVirtualEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC6JSCell23getConstructDataVirtualERNS_13ConstructDataE
__ZN3JSC6JSCell9getObjectEv
__ZN3JSC6JSLock12DropAllLocksC1ENS_14JSLockBehaviorE
......@@ -280,7 +279,7 @@ __ZN3JSC7JSArray13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE
__ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataE
__ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataERKNS_7ArgListE
__ZN3JSC7JSArray15setSubclassDataEPv
__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC7JSArray18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC7JSArray6s_infoE
__ZN3JSC7JSArray9setLengthEj
__ZN3JSC7JSArrayC1ERNS_12JSGlobalDataEPNS_9StructureE
......@@ -324,7 +323,6 @@ __ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValu
__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEjbRNS_15PutPropertySlotE
__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateEjNS_7JSValueEj
__ZN3JSC8JSObject18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
__ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateEj
......@@ -332,6 +330,7 @@ __ZN3JSC8JSObject21getPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18
__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE
__ZN3JSC8JSObject23allocatePropertyStorageERNS_12JSGlobalDataEmm
__ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC8JSObject25getOwnPropertySlotVirtualEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC8JSObject6s_infoE
__ZN3JSC8JSString6s_infoE
......
......@@ -200,15 +200,12 @@ EXPORTS
?getOwnPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getOwnPropertyNames@JSVariableObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getOwnPropertyNames@StringObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getOwnPropertySlot@JSArray@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSCell@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSCell@JSC@@EAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSGlobalObject@JSC@@UAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSObject@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSString@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSString@JSC@@EAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@StringObject@JSC@@UAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@StringObject@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSArray@JSC@@SA_NPAVJSCell@2@PAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSGlobalObject@JSC@@SA_NPAVJSCell@2@PAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlotVirtual@JSCell@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlotVirtual@JSCell@JSC@@EAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlotVirtual@JSGlobalObject@JSC@@UAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlotVirtual@JSObject@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getPropertyDescriptor@JSObject@JSC@@QAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertyDescriptor@2@@Z
?getPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getSlice@ArgList@JSC@@QBEXHAAV12@@Z
......
......@@ -60,14 +60,14 @@ UString DebuggerActivation::className() const
return m_activation->className();
}
bool DebuggerActivation::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool DebuggerActivation::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
bool DebuggerActivation::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return static_cast<DebuggerActivation*>(cell)->m_activation->getOwnPropertySlot(exec, propertyName, slot);
return static_cast<DebuggerActivation*>(cell)->m_activation->getOwnPropertySlotVirtual(exec, propertyName, slot);
}
void DebuggerActivation::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
......
......@@ -43,7 +43,7 @@ namespace JSC {
static void visitChildren(JSCell*, SlotVisitor&);
virtual UString className() const;
virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier& propertyName, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
......
......@@ -145,7 +145,7 @@ void Arguments::fillArgList(ExecState* exec, MarkedArgumentBuffer& args)
}
}
bool Arguments::getOwnPropertySlot(ExecState* exec, unsigned i, PropertySlot& slot)
bool Arguments::getOwnPropertySlotVirtual(ExecState* exec, unsigned i, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, i, slot);
}
......@@ -188,35 +188,41 @@ void Arguments::createStrictModeCalleeIfNecessary(ExecState* exec)
defineOwnProperty(exec, exec->propertyNames().callee, descriptor, false);
}
bool Arguments::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool Arguments::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
bool Arguments::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
Arguments* thisObject = static_cast<Arguments*>(cell);
bool isArrayIndex;
unsigned i = propertyName.toArrayIndex(isArrayIndex);
if (isArrayIndex && i < d->numArguments && (!d->deletedArguments || !d->deletedArguments[i])) {
if (i < d->numParameters) {
slot.setValue(d->registers[d->firstParameterIndex + i].get());
if (isArrayIndex && i < thisObject->d->numArguments && (!thisObject->d->deletedArguments || !thisObject->d->deletedArguments[i])) {
if (i < thisObject->d->numParameters) {
slot.setValue(thisObject->d->registers[thisObject->d->firstParameterIndex + i].get());
} else
slot.setValue(d->extraArguments[i - d->numParameters].get());
slot.setValue(thisObject->d->extraArguments[i - thisObject->d->numParameters].get());
return true;
}
if (propertyName == exec->propertyNames().length && LIKELY(!d->overrodeLength)) {
slot.setValue(jsNumber(d->numArguments));
if (propertyName == exec->propertyNames().length && LIKELY(!thisObject->d->overrodeLength)) {
slot.setValue(jsNumber(thisObject->d->numArguments));
return true;
}
if (propertyName == exec->propertyNames().callee && LIKELY(!d->overrodeCallee)) {
if (!d->isStrictMode) {
slot.setValue(d->callee.get());
if (propertyName == exec->propertyNames().callee && LIKELY(!thisObject->d->overrodeCallee)) {
if (!thisObject->d->isStrictMode) {
slot.setValue(thisObject->d->callee.get());
return true;
}
createStrictModeCalleeIfNecessary(exec);
thisObject->createStrictModeCalleeIfNecessary(exec);
}
if (propertyName == exec->propertyNames().caller && d->isStrictMode)
createStrictModeCallerIfNecessary(exec);
if (propertyName == exec->propertyNames().caller && thisObject->d->isStrictMode)
thisObject->createStrictModeCallerIfNecessary(exec);
return JSObject::getOwnPropertySlot(exec, propertyName, slot);
return JSObject::getOwnPropertySlot(thisObject, exec, propertyName, slot);
}
bool Arguments::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
......
......@@ -135,9 +135,9 @@ namespace JSC {
private:
void getArgumentsData(CallFrame*, JSFunction*&, ptrdiff_t& firstParameterIndex, Register*& argv, int& argc);
virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier& propertyName, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, unsigned propertyName, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
......
......@@ -63,9 +63,14 @@ void ArrayConstructor::finishCreation(ExecState* exec, ArrayPrototype* arrayProt
putDirectWithoutTransition(exec->globalData(), exec->propertyNames().length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
}
bool ArrayConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
bool ArrayConstructor::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
{
return getStaticFunctionSlot<InternalFunction>(exec, ExecState::arrayConstructorTable(exec), this, propertyName, slot);
return getOwnPropertySlot(this, exec, propertyName, slot);
}
bool ArrayConstructor::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
{
return getStaticFunctionSlot<InternalFunction>(exec, ExecState::arrayConstructorTable(exec), static_cast<ArrayConstructor*>(cell), propertyName, slot);
}
bool ArrayConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
......
......@@ -51,7 +51,7 @@ namespace JSC {
private:
ArrayConstructor(JSGlobalObject*, Structure*);
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
......@@ -125,7 +125,7 @@ void ArrayPrototype::finishCreation(JSGlobalObject* globalObject)
ASSERT(inherits(&s_info));
}
bool ArrayPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool ArrayPrototype::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -40,7 +40,7 @@ namespace JSC {
return prototype;
}
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
......@@ -62,7 +62,7 @@ void BooleanPrototype::finishCreation(ExecState* exec, JSGlobalObject*)
ASSERT(inherits(&s_info));
}
bool BooleanPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
bool BooleanPrototype::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -49,7 +49,7 @@ namespace JSC {
private:
BooleanPrototype(ExecState*, Structure*);
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
......@@ -85,7 +85,7 @@ void DateConstructor::finishCreation(ExecState* exec, DatePrototype* datePrototy
putDirectWithoutTransition(exec->globalData(), exec->propertyNames().length, jsNumber(7), ReadOnly | DontEnum | DontDelete);
}
bool DateConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
bool DateConstructor::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -55,7 +55,7 @@ namespace JSC {
static ConstructType getConstructData(JSCell*, ConstructData&);
static CallType getCallData(JSCell*, CallData&);
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
......@@ -443,7 +443,7 @@ void DatePrototype::finishCreation(ExecState* exec, JSGlobalObject*)
// The constructor will be added later, after DateConstructor has been built.
}
bool DatePrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool DatePrototype::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -40,7 +40,7 @@ namespace JSC {
prototype->finishCreation(exec, globalObject);
return prototype;
}
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
......@@ -62,7 +62,7 @@ void ErrorPrototype::finishCreation(ExecState* exec, JSGlobalObject*)
putDirect(exec->globalData(), exec->propertyNames().name, jsNontrivialString(exec, "Error"), DontEnum);
}
bool ErrorPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
bool ErrorPrototype::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot &slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -52,7 +52,7 @@ namespace JSC {
static const unsigned StructureFlags = OverridesGetOwnPropertySlot | ErrorInstance::StructureFlags;
private:
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
};
......
......@@ -141,7 +141,7 @@ inline bool JSActivation::symbolTablePutWithAttributes(JSGlobalData& globalData,
return true;
}
bool JSActivation::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool JSActivation::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -61,7 +61,7 @@ namespace JSC {
virtual bool isActivationObject() const { return true; }
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode);
......
......@@ -245,7 +245,7 @@ JSArray::~JSArray()
fastFree(m_storage->m_allocBase);
}
bool JSArray::getOwnPropertySlot(ExecState* exec, unsigned i, PropertySlot& slot)
bool JSArray::getOwnPropertySlotVirtual(ExecState* exec, unsigned i, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, i, slot);
}
......@@ -257,7 +257,7 @@ bool JSArray::getOwnPropertySlot(JSCell* cell, ExecState* exec, unsigned i, Prop
if (i >= storage->m_length) {
if (i > MAX_ARRAY_INDEX)
return thisObject->getOwnPropertySlot(exec, Identifier::from(exec, i), slot);
return thisObject->getOwnPropertySlotVirtual(exec, Identifier::from(exec, i), slot);
return false;
}
......@@ -280,7 +280,7 @@ bool JSArray::getOwnPropertySlot(JSCell* cell, ExecState* exec, unsigned i, Prop
return JSObject::getOwnPropertySlot(thisObject, exec, Identifier::from(exec, i), slot);
}
bool JSArray::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool JSArray::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
......@@ -94,9 +94,9 @@ namespace JSC {
return array;
}
virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier& propertyName, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&);
virtual bool getOwnPropertySlotVirtual(ExecState*, unsigned propertyName, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void putVirtual(ExecState*, unsigned propertyName, JSValue); // FIXME: Make protected and add setItem.
......
......@@ -96,7 +96,7 @@ bool JSBoundFunction::hasInstance(ExecState* exec, JSValue value, JSValue)
return m_targetFunction->hasInstance(exec, value, proto);
}
bool JSBoundFunction::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
bool JSBoundFunction::getOwnPropertySlotVirtual(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
return getOwnPropertySlot(this, exec, propertyName, slot);
}
......
<