-
mhahnenberg@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=68404 Reviewed by Darin Adler. .: In this patch we just extract the bodies of the virtual visitChildren methods throughout the JSCell inheritance hierarchy out into static methods, which are now called from the virtual methods. This is an intermediate step in trying to move the virtual-ness of visitChildren into our own custom vtable stored in ClassInfo. We need to convert the methods to static methods in order to be able to more easily store and refer to them in our custom vtable since normal member methods store some implicit information in their types, making it impossible to store them generically in ClassInfo. * Source/autotools/symbols.filter: Source/JavaScriptCore: In this patch we just extract the bodies of the virtual visitChildren methods throughout the JSCell inheritance hierarchy out into static methods, which are now called from the virtual methods. This is an intermediate step in trying to move the virtual-ness of visitChildren into our own custom vtable stored in ClassInfo. We need to convert the methods to static methods in order to be able to more easily store and refer to them in our custom vtable since normal member methods store some implicit information in their types, making it impossible to store them generically in ClassInfo. * API/JSCallbackObject.h: (JSC::JSCallbackObject::visitChildrenVirtual): (JSC::JSCallbackObject::visitChildren): * JavaScriptCore.exp: * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: * debugger/DebuggerActivation.cpp: (JSC::DebuggerActivation::visitChildrenVirtual): (JSC::DebuggerActivation::visitChildren): * debugger/DebuggerActivation.h: * heap/MarkStack.cpp: (JSC::SlotVisitor::visitChildren): (JSC::SlotVisitor::drain): * runtime/Arguments.cpp: (JSC::Arguments::visitChildrenVirtual): (JSC::Arguments::visitChildren): * runtime/Arguments.h: * runtime/Executable.cpp: (JSC::EvalExecutable::visitChildrenVirtual): (JSC::EvalExecutable::visitChildren): (JSC::ProgramExecutable::visitChildrenVirtual): (JSC::ProgramExecutable::visitChildren): (JSC::FunctionExecutable::visitChildrenVirtual): (JSC::FunctionExecutable::visitChildren): * runtime/Executable.h: * runtime/GetterSetter.cpp: (JSC::GetterSetter::visitChildrenVirtual): (JSC::GetterSetter::visitChildren): * runtime/GetterSetter.h: * runtime/JSActivation.cpp: (JSC::JSActivation::visitChildrenVirtual): (JSC::JSActivation::visitChildren): * runtime/JSActivation.h: * runtime/JSArray.cpp: (JSC::JSArray::visitChildrenVirtual): (JSC::JSArray::visitChildren): * runtime/JSArray.h: * runtime/JSBoundFunction.cpp: (JSC::JSBoundFunction::visitChildrenVirtual): (JSC::JSBoundFunction::visitChildren): * runtime/JSBoundFunction.h: * runtime/JSCell.h: (JSC::JSCell::visitChildrenVirtual): (JSC::JSCell::visitChildren): * runtime/JSFunction.cpp: (JSC::JSFunction::visitChildrenVirtual): (JSC::JSFunction::visitChildren): * runtime/JSFunction.h: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::visitChildrenVirtual): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: * runtime/JSObject.cpp: (JSC::JSObject::visitChildrenVirtual): (JSC::JSObject::visitChildren): * runtime/JSObject.h: (JSC::JSObject::visitChildrenDirect): * runtime/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::visitChildrenVirtual): (JSC::JSPropertyNameIterator::visitChildren): * runtime/JSPropertyNameIterator.h: * runtime/JSStaticScopeObject.cpp: (JSC::JSStaticScopeObject::visitChildrenVirtual): (JSC::JSStaticScopeObject::visitChildren): * runtime/JSStaticScopeObject.h: * runtime/JSWrapperObject.cpp: (JSC::JSWrapperObject::visitChildrenVirtual): (JSC::JSWrapperObject::visitChildren): * runtime/JSWrapperObject.h: * runtime/NativeErrorConstructor.cpp: (JSC::NativeErrorConstructor::visitChildrenVirtual): (JSC::NativeErrorConstructor::visitChildren): * runtime/NativeErrorConstructor.h: * runtime/RegExpObject.cpp: (JSC::RegExpObject::visitChildrenVirtual): (JSC::RegExpObject::visitChildren): * runtime/RegExpObject.h: * runtime/ScopeChain.cpp: (JSC::ScopeChainNode::visitChildrenVirtual): (JSC::ScopeChainNode::visitChildren): * runtime/ScopeChain.h: * runtime/Structure.cpp: (JSC::Structure::visitChildrenVirtual): (JSC::Structure::visitChildren): * runtime/Structure.h: * runtime/StructureChain.cpp: (JSC::StructureChain::visitChildrenVirtual): (JSC::StructureChain::visitChildren): * runtime/StructureChain.h: Source/JavaScriptGlue: In this patch we just extract the bodies of the virtual visitChildren methods throughout the JSCell inheritance hierarchy out into static methods, which are now called from the virtual methods. This is an intermediate step in trying to move the virtual-ness of visitChildren into our own custom vtable stored in ClassInfo. We need to convert the methods to static methods in order to be able to more easily store and refer to them in our custom vtable since normal member methods store some implicit information in their types, making it impossible to store them generically in ClassInfo. * UserObjectImp.cpp: (UserObjectImp::visitChildrenVirtual): (UserObjectImp::visitChildren): * UserObjectImp.h: Source/WebCore: No new tests. In this patch we just extract the bodies of the virtual visitChildren methods throughout the JSCell inheritance hierarchy out into static methods, which are now called from the virtual methods. This is an intermediate step in trying to move the virtual-ness of visitChildren into our own custom vtable stored in ClassInfo. We need to convert the methods to static methods in order to be able to more easily store and refer to them in our custom vtable since normal member methods store some implicit information in their types, making it impossible to store them generically in ClassInfo. * WebCore.exp.in: * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildrenVirtual): (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildrenVirtual): (WebCore::JSAudioContext::visitChildren): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildrenVirtual): (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildrenVirtual): (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::JSCanvasRenderingContext::visitChildrenVirtual): (WebCore::JSCanvasRenderingContext::visitChildren): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildrenVirtual): (WebCore::JSDOMGlobalObject::visitChildren): * bindings/js/JSDOMGlobalObject.h: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildrenVirtual): (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildrenVirtual): (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSDOMWindowShell.h: * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildrenVirtual): (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildrenVirtual): (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildrenVirtual): (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::visitChildrenVirtual): (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::visitChildrenVirtual): (WebCore::JSNode::visitChildren): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildrenVirtual): (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildrenVirtual): (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildrenVirtual): (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildrenVirtual): (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildrenVirtual): (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildrenVirtual): (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildrenVirtual): (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildrenVirtual): (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildrenVirtual): (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXPathResultCustom.cpp: (WebCore::JSXPathResult::visitChildrenVirtual): (WebCore::JSXPathResult::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader): (GenerateImplementation): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObj::visitChildrenVirtual): (WebCore::JSTestObj::visitChildren): * bindings/scripts/test/JS/JSTestObj.h: * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtRuntimeObject::visitChildrenVirtual): (JSC::Bindings::QtRuntimeObject::visitChildren): * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual): (JSC::Bindings::QtRuntimeMetaMethod::visitChildren): * bridge/qt/qt_runtime.h: * workers/WorkerContext.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
982c9ea2