-
barraclough@apple.com authored
Add attributes field to PropertySlot Reviewed by Geoff Garen. For all JSC types, this makes getOwnPropertyDescriptor redundant. There will be a bit more hacking required in WebCore to remove GOPD whilst maintaining current behaviour. (Current behaviour is in many ways broken, particularly in that GOPD & GOPS are inconsistent, but we should fix incrementally). Source/JavaScriptCore: No performance impact. * runtime/PropertySlot.h: (JSC::PropertySlot::setValue): (JSC::PropertySlot::setCustom): (JSC::PropertySlot::setCacheableCustom): (JSC::PropertySlot::setCustomIndex): (JSC::PropertySlot::setGetterSlot): (JSC::PropertySlot::setCacheableGetterSlot): - These mathods now all require 'attributes'. * runtime/JSObject.h: (JSC::JSObject::getDirect): (JSC::JSObject::getDirectOffset): (JSC::JSObject::inlineGetOwnPropertySlot): - Added variants of getDirect, getDirectOffset that return the attributes. * API/JSCallbackObjectFunctions.h: (JSC::::getOwnPropertySlot): * runtime/Arguments.cpp: (JSC::Arguments::getOwnPropertySlotByIndex): (JSC::Arguments::getOwnPropertySlot): * runtime/JSActivation.cpp: (JSC::JSActivation::symbolTableGet): (JSC::JSActivation::getOwnPropertySlot): * runtime/JSArray.cpp: (JSC::JSArray::getOwnPropertySlot): * runtime/JSArrayBuffer.cpp: (JSC::JSArrayBuffer::getOwnPropertySlot): * runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::getOwnPropertySlot): * runtime/JSDataView.cpp: (JSC::JSDataView::getOwnPropertySlot): * runtime/JSFunction.cpp: (JSC::JSFunction::getOwnPropertySlot): * runtime/JSGenericTypedArrayViewInlines.h: (JSC::::getOwnPropertySlot): (JSC::::getOwnPropertySlotByIndex): * runtime/JSObject.cpp: (JSC::JSObject::getOwnPropertySlotByIndex): (JSC::JSObject::fillGetterPropertySlot): * runtime/JSString.h: (JSC::JSString::getStringPropertySlot): * runtime/JSSymbolTableObject.h: (JSC::symbolTableGet): * runtime/Lookup.cpp: (JSC::setUpStaticFunctionSlot): * runtime/Lookup.h: (JSC::getStaticPropertySlot): (JSC::getStaticPropertyDescriptor): (JSC::getStaticValueSlot): (JSC::getStaticValueDescriptor): * runtime/RegExpObject.cpp: (JSC::RegExpObject::getOwnPropertySlot): * runtime/SparseArrayValueMap.cpp: (JSC::SparseArrayEntry::get): - Pass attributes to PropertySlot::set* methods. Source/WebCore: * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertySlotByIndex): (WebCore::JSDOMWindow::getOwnPropertyDescriptor): * bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::getOwnPropertySlotDelegate): (WebCore::JSHistory::getOwnPropertyDescriptorDelegate): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::getOwnPropertySlotDelegate): (WebCore::JSLocation::getOwnPropertyDescriptorDelegate): * bindings/js/JSPluginElementFunctions.cpp: (WebCore::runtimeObjectCustomGetOwnPropertySlot): (WebCore::runtimeObjectCustomGetOwnPropertyDescriptor): * bindings/scripts/CodeGeneratorJS.pm: (GenerateGetOwnPropertySlotBody): (GenerateGetOwnPropertyDescriptorBody): (GenerateImplementation): * bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertySlot): (JSC::RuntimeArray::getOwnPropertyDescriptor): (JSC::RuntimeArray::getOwnPropertySlotByIndex): * bridge/runtime_method.cpp: (JSC::RuntimeMethod::getOwnPropertySlot): (JSC::RuntimeMethod::getOwnPropertyDescriptor): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::getOwnPropertySlot): (JSC::Bindings::RuntimeObject::getOwnPropertyDescriptor): - Pass attributes to PropertySlot::set* methods. Source/WebKit2: * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::getOwnPropertySlot): (WebKit::JSNPObject::getOwnPropertyDescriptor): - Pass attributes to PropertySlot::set* methods. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5e55df2c