Remove support for anonymous storage from jsobjects
https://bugs.webkit.org/show_bug.cgi?id=67881
Reviewed by Sam Weinig.
Source/JavaScriptCore:
Remove all use of anonymous slots, essentially a mechanical change
in JavaScriptCore
- API/JSCallbackConstructor.h:
(JSC::JSCallbackConstructor::createStructure):
- API/JSCallbackFunction.h:
(JSC::JSCallbackFunction::createStructure):
(JSC::JSCallbackObject::createStructure):
(JSC::DebuggerActivation::createStructure):
(JSC::MarkStack::validateValue):
- heap/MarkStack.h:
- runtime/Arguments.h:
(JSC::Arguments::createStructure):
- runtime/ArrayConstructor.h:
(JSC::ArrayConstructor::createStructure):
- runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
- runtime/ArrayPrototype.h:
(JSC::ArrayPrototype::createStructure):
(JSC::BooleanObject::createStructure):
- runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::BooleanPrototype):
- runtime/BooleanPrototype.h:
(JSC::BooleanPrototype::createStructure):
- runtime/DateConstructor.h:
(JSC::DateConstructor::createStructure):
(JSC::DateInstance::createStructure):
- runtime/DatePrototype.cpp:
(JSC::DatePrototype::DatePrototype):
(JSC::DatePrototype::createStructure):
(JSC::ErrorInstance::createStructure):
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::finishCreation):
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::createStructure):
- runtime/ExceptionHelpers.h:
(JSC::InterruptedExecutionError::createStructure):
(JSC::TerminatedExecutionError::createStructure):
(JSC::ExecutableBase::createStructure):
(JSC::NativeExecutable::createStructure):
(JSC::EvalExecutable::createStructure):
(JSC::ProgramExecutable::createStructure):
(JSC::FunctionExecutable::createStructure):
- runtime/FunctionPrototype.h:
(JSC::FunctionPrototype::createStructure):
(JSC::GetterSetter::createStructure):
- runtime/InternalFunction.h:
(JSC::InternalFunction::createStructure):
- runtime/JSAPIValueWrapper.h:
(JSC::JSAPIValueWrapper::createStructure):
(JSC::JSActivation::createStructure):
(JSC::JSArray::createStructure):
(JSC::JSByteArray::createStructure):
- runtime/JSCell.h:
- runtime/JSFunction.h:
(JSC::JSFunction::createStructure):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::createStructure):
(JSC::JSNotAnObject::createStructure):
(JSC::JSONObject::createStructure):
(JSC::JSObject::createStructure):
(JSC::JSNonFinalObject::createStructure):
(JSC::JSFinalObject::createStructure):
- runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
- runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure):
- runtime/JSStaticScopeObject.h:
(JSC::JSStaticScopeObject::createStructure):
(JSC::RopeBuilder::createStructure):
- runtime/JSVariableObject.h:
(JSC::JSVariableObject::createStructure):
- runtime/JSWrapperObject.h:
(JSC::JSWrapperObject::createStructure):
(JSC::MathObject::createStructure):
- runtime/NativeErrorConstructor.h:
(JSC::NativeErrorConstructor::createStructure):
- runtime/NumberConstructor.h:
(JSC::NumberConstructor::createStructure):
(JSC::NumberObject::createStructure):
- runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::NumberPrototype):
- runtime/NumberPrototype.h:
(JSC::NumberPrototype::createStructure):
- runtime/ObjectConstructor.h:
(JSC::ObjectConstructor::createStructure):
- runtime/ObjectPrototype.cpp:
(JSC::ObjectPrototype::finishCreation):
- runtime/ObjectPrototype.h:
(JSC::ObjectPrototype::createStructure):
(JSC::RegExp::createStructure):
- runtime/RegExpConstructor.h:
(JSC::RegExpConstructor::createStructure):
(JSC::RegExpObject::createStructure):
- runtime/RegExpPrototype.h:
(JSC::RegExpPrototype::createStructure):
(JSC::ScopeChainNode::createStructure):
- runtime/StrictEvalActivation.h:
(JSC::StrictEvalActivation::createStructure):
- runtime/StringConstructor.h:
(JSC::StringConstructor::createStructure):
(JSC::StringObject::createStructure):
- runtime/StringObjectThatMasqueradesAsUndefined.h:
(JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::StringPrototype):
- runtime/StringPrototype.h:
(JSC::StringPrototype::createStructure):
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransitionToExistingStructure):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::removePropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::getterSetterTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::get):
(JSC::Structure::putSpecificValue):
(JSC::Structure::remove):
(JSC::Structure::checkConsistency):
(JSC::Structure::create):
(JSC::Structure::propertyStorageSize):
(JSC::Structure::get):
- runtime/StructureChain.h:
(JSC::StructureChain::createStructure):
Source/JavaScriptGlue:
Don't need an anonymous slot count anymore
(UserObjectImp::createStructure):
Source/WebCore:
Remove all use of anonymous slots, this required modifying
bindings generation to add member variables for cached attributes,
and override visitChildren with the necessary logic to mark those
new members.
I added bindings generation tests for these values.
- bindings/js/JSAudioConstructor.h:
(WebCore::JSAudioConstructor::createStructure):
- bindings/js/JSDOMBinding.h:
(WebCore::DOMConstructorObject::createStructure):
- bindings/js/JSDOMGlobalObject.h:
(WebCore::JSDOMGlobalObject::createStructure):
- bindings/js/JSDOMWindowBase.h:
(WebCore::JSDOMWindowBase::createStructure):
- bindings/js/JSDOMWindowShell.h:
(WebCore::JSDOMWindowShell::createStructure):
- bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::createStructure):
- bindings/js/JSImageConstructor.h:
(WebCore::JSImageConstructor::createStructure):
- bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
(WebCore::JSMessageEvent::initMessageEvent):
- bindings/js/JSOptionConstructor.h:
(WebCore::JSOptionConstructor::createStructure):
- bindings/js/JSWorkerContextBase.h:
(WebCore::JSWorkerContextBase::createStructure):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorDeclaration):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::createStructure):
- bindings/scripts/test/JS/JSTestInterface.h:
(WebCore::JSTestInterface::createStructure):
(WebCore::JSTestInterfacePrototype::createStructure):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(WebCore::JSTestMediaQueryListListener::createStructure):
(WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::createStructure):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::JSTestObj::visitChildren):
- bindings/scripts/test/JS/JSTestObj.h:
(WebCore::JSTestObj::createStructure):
(WebCore::JSTestObjPrototype::createStructure):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::JSTestSerializedScriptValueInterface::createStructure):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
- bindings/scripts/test/TestObj.idl:
- bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::cachedAttribute1AttrGetter):
(WebCore::TestObjInternal::cachedAttribute2AttrGetter):
- bridge/c/CRuntimeObject.h:
(JSC::Bindings::CRuntimeObject::createStructure):
(JSC::Bindings::CRuntimeMethod::createStructure):
- bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaRuntimeMethod::createStructure):
- bridge/jni/jsc/JavaRuntimeObject.h:
(JSC::Bindings::JavaRuntimeObject::createStructure):
- bridge/objc/ObjCRuntimeObject.h:
(JSC::Bindings::ObjCRuntimeObject::createStructure):
- bridge/objc/objc_instance.mm:
(ObjCRuntimeMethod::createStructure):
- bridge/objc/objc_runtime.h:
(JSC::Bindings::ObjcFallbackObjectImp::createStructure):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeMethod::createStructure):
(JSC::Bindings::RuntimeObject::createStructure):
Source/WebKit/mac:
Remove the use of AnonymousSlotCount
- Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyRuntimeMethod::createStructure):
- Plugins/Hosted/ProxyRuntimeObject.h:
(WebKit::ProxyRuntimeObject::createStructure):
Source/WebKit2:
Remove the use of AnonymousSlotCount.
- WebProcess/Plugins/Netscape/JSNPMethod.h:
(WebKit::JSNPMethod::createStructure):
- WebProcess/Plugins/Netscape/JSNPObject.h:
(WebKit::JSNPObject::createStructure):