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: ...@@ -178,7 +178,8 @@ protected:
private: private:
virtual UString className() const; 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 bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&); virtual void putVirtual(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
......
...@@ -124,20 +124,27 @@ UString JSCallbackObject<Parent>::className() const ...@@ -124,20 +124,27 @@ UString JSCallbackObject<Parent>::className() const
} }
template <class Parent> 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); JSContextRef ctx = toRef(exec);
JSObjectRef thisRef = toRef(this); JSObjectRef thisRef = toRef(thisObject);
RefPtr<OpaqueJSString> propertyNameRef; 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 // optional optimization to bypass getProperty in cases when we only need to know if the property exists
if (JSObjectHasPropertyCallback hasProperty = jsClass->hasProperty) { if (JSObjectHasPropertyCallback hasProperty = jsClass->hasProperty) {
if (!propertyNameRef) if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring()); propertyNameRef = OpaqueJSString::create(propertyName.ustring());
APICallbackShim callbackShim(exec); APICallbackShim callbackShim(exec);
if (hasProperty(ctx, thisRef, propertyNameRef.get())) { if (hasProperty(ctx, thisRef, propertyNameRef.get())) {
slot.setCustom(this, callbackGetter); slot.setCustom(thisObject, callbackGetter);
return true; return true;
} }
} else if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) { } else if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) {
...@@ -162,7 +169,7 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif ...@@ -162,7 +169,7 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif
if (OpaqueJSClassStaticValuesTable* staticValues = jsClass->staticValues(exec)) { if (OpaqueJSClassStaticValuesTable* staticValues = jsClass->staticValues(exec)) {
if (staticValues->contains(propertyName.impl())) { if (staticValues->contains(propertyName.impl())) {
JSValue value = getStaticValue(exec, propertyName); JSValue value = thisObject->getStaticValue(exec, propertyName);
if (value) { if (value) {
slot.setValue(value); slot.setValue(value);
return true; return true;
...@@ -172,20 +179,20 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif ...@@ -172,20 +179,20 @@ bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identif
if (OpaqueJSClassStaticFunctionsTable* staticFunctions = jsClass->staticFunctions(exec)) { if (OpaqueJSClassStaticFunctionsTable* staticFunctions = jsClass->staticFunctions(exec)) {
if (staticFunctions->contains(propertyName.impl())) { if (staticFunctions->contains(propertyName.impl())) {
slot.setCustom(this, staticFunctionGetter); slot.setCustom(thisObject, staticFunctionGetter);
return true; return true;
} }
} }
} }
return Parent::getOwnPropertySlot(exec, propertyName, slot); return Parent::getOwnPropertySlot(thisObject, exec, propertyName, slot);
} }
template <class Parent> template <class Parent>
bool JSCallbackObject<Parent>::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor) bool JSCallbackObject<Parent>::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
{ {
PropertySlot slot; 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. // Ideally we should return an access descriptor, but returning a value descriptor is better than nothing.
JSValue value = slot.getValue(exec, propertyName); JSValue value = slot.getValue(exec, propertyName);
if (!exec->hadException()) if (!exec->hadException())
...@@ -536,7 +543,7 @@ JSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, JSValue ...@@ -536,7 +543,7 @@ JSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, JSValue
// Check for cached or override property. // Check for cached or override property.
PropertySlot slot2(thisObj); PropertySlot slot2(thisObj);
if (thisObj->Parent::getOwnPropertySlot(exec, propertyName, slot2)) if (Parent::getOwnPropertySlot(thisObj, exec, propertyName, slot2))
return slot2.getValue(exec, propertyName); return slot2.getValue(exec, propertyName);
for (JSClassRef jsClass = thisObj->classRef(); jsClass; jsClass = jsClass->parentClass) { 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> 2011-10-14 Gavin Barraclough <baraclough@apple.com>
Most built-in properties are not deletable Most built-in properties are not deletable
...@@ -147,8 +147,6 @@ __ZN3JSC12SamplingTool5setupEv ...@@ -147,8 +147,6 @@ __ZN3JSC12SamplingTool5setupEv
__ZN3JSC12SmallStrings17createEmptyStringEPNS_12JSGlobalDataE __ZN3JSC12SmallStrings17createEmptyStringEPNS_12JSGlobalDataE
__ZN3JSC12SmallStrings27createSingleCharacterStringEPNS_12JSGlobalDataEh __ZN3JSC12SmallStrings27createSingleCharacterStringEPNS_12JSGlobalDataEh
__ZN3JSC12StringObject14finishCreationERNS_12JSGlobalDataEPNS_8JSStringE __ZN3JSC12StringObject14finishCreationERNS_12JSGlobalDataEPNS_8JSStringE
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC12StringObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE __ZN3JSC12StringObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
__ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE __ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC12StringObject6s_infoE __ZN3JSC12StringObject6s_infoE
...@@ -166,8 +164,9 @@ __ZN3JSC14JSGlobalObject13clearRareDataEPNS_6JSCellE ...@@ -166,8 +164,9 @@ __ZN3JSC14JSGlobalObject13clearRareDataEPNS_6JSCellE
__ZN3JSC14JSGlobalObject13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE __ZN3JSC14JSGlobalObject13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE
__ZN3JSC14JSGlobalObject16addStaticGlobalsEPNS0_18GlobalPropertyInfoEi __ZN3JSC14JSGlobalObject16addStaticGlobalsEPNS0_18GlobalPropertyInfoEi
__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj __ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
__ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE __ZN3JSC14JSGlobalObject18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC14JSGlobalObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE __ZN3JSC14JSGlobalObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC14JSGlobalObject25getOwnPropertySlotVirtualEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC14JSGlobalObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE __ZN3JSC14JSGlobalObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE __ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
__ZN3JSC14JSGlobalObject6s_infoE __ZN3JSC14JSGlobalObject6s_infoE
...@@ -261,8 +260,8 @@ __ZN3JSC6JSCell10putVirtualEPNS_9ExecStateEjNS_7JSValueE ...@@ -261,8 +260,8 @@ __ZN3JSC6JSCell10putVirtualEPNS_9ExecStateEjNS_7JSValueE
__ZN3JSC6JSCell11getCallDataEPS0_RNS_8CallDataE __ZN3JSC6JSCell11getCallDataEPS0_RNS_8CallDataE
__ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE __ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateEj __ZN3JSC6JSCell21deletePropertyVirtualEPNS_9ExecStateEj
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE __ZN3JSC6JSCell25getOwnPropertySlotVirtualEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSC6JSCell25getOwnPropertySlotVirtualEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC6JSCell23getConstructDataVirtualERNS_13ConstructDataE __ZN3JSC6JSCell23getConstructDataVirtualERNS_13ConstructDataE
__ZN3JSC6JSCell9getObjectEv __ZN3JSC6JSCell9getObjectEv
__ZN3JSC6JSLock12DropAllLocksC1ENS_14JSLockBehaviorE __ZN3JSC6JSLock12DropAllLocksC1ENS_14JSLockBehaviorE
...@@ -280,7 +279,7 @@ __ZN3JSC7JSArray13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE ...@@ -280,7 +279,7 @@ __ZN3JSC7JSArray13visitChildrenEPNS_6JSCellERNS_11SlotVisitorE
__ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataE __ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataE
__ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataERKNS_7ArgListE __ZN3JSC7JSArray14finishCreationERNS_12JSGlobalDataERKNS_7ArgListE
__ZN3JSC7JSArray15setSubclassDataEPv __ZN3JSC7JSArray15setSubclassDataEPv
__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSC7JSArray18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC7JSArray6s_infoE __ZN3JSC7JSArray6s_infoE
__ZN3JSC7JSArray9setLengthEj __ZN3JSC7JSArray9setLengthEj
__ZN3JSC7JSArrayC1ERNS_12JSGlobalDataEPNS_9StructureE __ZN3JSC7JSArrayC1ERNS_12JSGlobalDataEPNS_9StructureE
...@@ -324,7 +323,6 @@ __ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValu ...@@ -324,7 +323,6 @@ __ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValu
__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEjbRNS_15PutPropertySlotE __ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEjbRNS_15PutPropertySlotE
__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateEjNS_7JSValueEj __ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateEjNS_7JSValueEj
__ZN3JSC8JSObject18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSC8JSObject18getOwnPropertySlotEPNS_6JSCellEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE __ZN3JSC8JSObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
__ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE __ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateEj __ZN3JSC8JSObject21deletePropertyVirtualEPNS_9ExecStateEj
...@@ -332,6 +330,7 @@ __ZN3JSC8JSObject21getPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18 ...@@ -332,6 +330,7 @@ __ZN3JSC8JSObject21getPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18
__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE __ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE
__ZN3JSC8JSObject23allocatePropertyStorageERNS_12JSGlobalDataEmm __ZN3JSC8JSObject23allocatePropertyStorageERNS_12JSGlobalDataEmm
__ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE __ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC8JSObject25getOwnPropertySlotVirtualEPNS_9ExecStateEjRNS_12PropertySlotE
__ZN3JSC8JSObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE __ZN3JSC8JSObject3putEPNS_6JSCellEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC8JSObject6s_infoE __ZN3JSC8JSObject6s_infoE
__ZN3JSC8JSString6s_infoE __ZN3JSC8JSString6s_infoE
......
...@@ -200,15 +200,12 @@ EXPORTS ...@@ -200,15 +200,12 @@ EXPORTS
?getOwnPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z ?getOwnPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getOwnPropertyNames@JSVariableObject@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 ?getOwnPropertyNames@StringObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getOwnPropertySlot@JSArray@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z ?getOwnPropertySlot@JSArray@JSC@@SA_NPAVJSCell@2@PAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSCell@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z ?getOwnPropertySlot@JSGlobalObject@JSC@@SA_NPAVJSCell@2@PAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSCell@JSC@@EAE_NPAVExecState@2@IAAVPropertySlot@2@@Z ?getOwnPropertySlotVirtual@JSCell@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSGlobalObject@JSC@@UAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z ?getOwnPropertySlotVirtual@JSCell@JSC@@EAE_NPAVExecState@2@IAAVPropertySlot@2@@Z
?getOwnPropertySlot@JSObject@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@2@@Z ?getOwnPropertySlotVirtual@JSGlobalObject@JSC@@UAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z
?getOwnPropertySlot@JSString@JSC@@EAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertySlot@2@@Z ?getOwnPropertySlotVirtual@JSObject@JSC@@UAE_NPAVExecState@2@IAAVPropertySlot@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
?getPropertyDescriptor@JSObject@JSC@@QAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertyDescriptor@2@@Z ?getPropertyDescriptor@JSObject@JSC@@QAE_NPAVExecState@2@ABVIdentifier@2@AAVPropertyDescriptor@2@@Z
?getPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z ?getPropertyNames@JSObject@JSC@@UAEXPAVExecState@2@AAVPropertyNameArray@2@W4EnumerationMode@2@@Z
?getSlice@ArgList@JSC@@QBEXHAAV12@@Z ?getSlice@ArgList@JSC@@QBEXHAAV12@@Z
......
...@@ -60,14 +60,14 @@ UString DebuggerActivation::className() const ...@@ -60,14 +60,14 @@ UString DebuggerActivation::className() const
return m_activation->className(); 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); return getOwnPropertySlot(this, exec, propertyName, slot);
} }
bool DebuggerActivation::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& 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) void DebuggerActivation::putVirtual(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
......
...@@ -43,7 +43,7 @@ namespace JSC { ...@@ -43,7 +43,7 @@ namespace JSC {
static void visitChildren(JSCell*, SlotVisitor&); static void visitChildren(JSCell*, SlotVisitor&);
virtual UString className() const; 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&); static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&);
virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); virtual void putVirtual(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&);
static void put(JSCell*, 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) ...@@ -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); return getOwnPropertySlot(this, exec, i, slot);
} }
...@@ -188,35 +188,41 @@ void Arguments::createStrictModeCalleeIfNecessary(ExecState* exec) ...@@ -188,35 +188,41 @@ void Arguments::createStrictModeCalleeIfNecessary(ExecState* exec)
defineOwnProperty(exec, exec->propertyNames().callee, descriptor, false); 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; bool isArrayIndex;
unsigned i = propertyName.toArrayIndex(isArrayIndex); unsigned i = propertyName.toArrayIndex(isArrayIndex);
if (isArrayIndex && i < d->numArguments && (!d->deletedArguments || !d->deletedArguments[i])) { if (isArrayIndex && i < thisObject->d->numArguments && (!thisObject->d->deletedArguments || !thisObject->d->deletedArguments[i])) {
if (i < d->numParameters) { if (i < thisObject->d->numParameters) {
slot.setValue(d->registers[d->firstParameterIndex + i].get()); slot.setValue(thisObject->d->registers[thisObject->d->firstParameterIndex + i].get());
} else } else
slot.setValue(d->extraArguments[i - d->numParameters].get()); slot.setValue(thisObject->d->extraArguments[i - thisObject->d->numParameters].get());
return true; return true;
} }
if (propertyName == exec->propertyNames().length && LIKELY(!d->overrodeLength)) { if (propertyName == exec->propertyNames().length && LIKELY(!thisObject->d->overrodeLength)) {
slot.setValue(jsNumber(d->numArguments)); slot.setValue(jsNumber(thisObject->d->numArguments));
return true; return true;
} }
if (propertyName == exec->propertyNames().callee && LIKELY(!d->overrodeCallee)) { if (propertyName == exec->propertyNames().callee && LIKELY(!thisObject->d->overrodeCallee)) {
if (!d->isStrictMode) { if (!thisObject->d->isStrictMode) {
slot.setValue(d->callee.get()); slot.setValue(thisObject->d->callee.get());
return true; return true;
} }
createStrictModeCalleeIfNecessary(exec); thisObject->createStrictModeCalleeIfNecessary(exec);
} }
if (propertyName == exec->propertyNames().caller && d->isStrictMode) if (propertyName == exec->propertyNames().caller && thisObject->d->isStrictMode)
createStrictModeCallerIfNecessary(exec); 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) bool Arguments::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
......
...@@ -135,9 +135,9 @@ namespace JSC { ...@@ -135,9 +135,9 @@ namespace JSC {
private: private:
void getArgumentsData(CallFrame*, JSFunction*&, ptrdiff_t& firstParameterIndex, Register*& argv, int& argc); 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&); 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&); static bool getOwnPropertySlot(JSCell*, ExecState*, unsigned propertyName, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&); virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties); virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
......
...@@ -63,9 +63,14 @@ void ArrayConstructor::finishCreation(ExecState* exec, ArrayPrototype* arrayProt ...@@ -63,9 +63,14 @@ void ArrayConstructor::finishCreation(ExecState* exec, ArrayPrototype* arrayProt
putDirectWithoutTransition(exec->globalData(), exec->propertyNames().length, jsNumber(1), ReadOnly | DontEnum | DontDelete); 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) bool ArrayConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
......
...@@ -51,7 +51,7 @@ namespace JSC { ...@@ -51,7 +51,7 @@ namespace JSC {
private: private:
ArrayConstructor(JSGlobalObject*, Structure*); 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&); static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&); virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
...@@ -125,7 +125,7 @@ void ArrayPrototype::finishCreation(JSGlobalObject* globalObject) ...@@ -125,7 +125,7 @@ void ArrayPrototype::finishCreation(JSGlobalObject* globalObject)
ASSERT(inherits(&s_info)); 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); return getOwnPropertySlot(this, exec, propertyName, slot);
} }
......
...@@ -40,7 +40,7 @@ namespace JSC { ...@@ -40,7 +40,7 @@ namespace JSC {
return prototype; return prototype;
} }
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); virtual bool getOwnPropertySlotVirtual(ExecState*, const Identifier&, PropertySlot&);
static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&); static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&); virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
......
...@@ -62,7 +62,7 @@ void BooleanPrototype::finishCreation(ExecState* exec, JSGlobalObject*) ...@@ -62,7 +62,7 @@ void BooleanPrototype::finishCreation(ExecState* exec, JSGlobalObject*)
ASSERT(inherits(&s_info)); 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); return getOwnPropertySlot(this, exec, propertyName, slot);
} }
......
...@@ -49,7 +49,7 @@ namespace JSC { ...@@ -49,7 +49,7 @@ namespace JSC {