-
mhahnenberg@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=72035 Reviewed by Geoffrey Garen. Source/JavaScriptCore: De-virtualized the methods through the use of a new method table just for JSGlobalObject and subclasses. * JavaScriptCore.exp: * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: * bytecompiler/BytecodeGenerator.cpp: Changed call sites to use the new GlobalObjectMethodTable. (JSC::BytecodeGenerator::BytecodeGenerator): * interpreter/Interpreter.cpp: Ditto. (JSC::Interpreter::execute): * runtime/JSGlobalObject.cpp: Added a static const GlobalObjectMethodTable with the correct function pointers. * runtime/JSGlobalObject.h: Added a field in JSGlobalObject to keep track of the current method table. (JSC::JSGlobalObject::JSGlobalObject): (JSC::JSGlobalObject::globalObjectMethodTable): The new struct to contain the function pointers. (JSC::JSGlobalObject::supportsProfiling): Made static to put in the method table. (JSC::JSGlobalObject::supportsRichSourceInfo): Ditto. (JSC::JSGlobalObject::shouldInterruptScript): Ditto. * runtime/TimeoutChecker.cpp: Changed call sites to use the new GlobalObjectMethodTable for lookup. (JSC::TimeoutChecker::didTimeOut): Source/WebCore: No new tests. * bindings/js/JSDOMGlobalObject.cpp: Changed constructor to support passing new GlobalObjectMethodTable pointer to parent class. (WebCore::JSDOMGlobalObject::JSDOMGlobalObject): * bindings/js/JSDOMGlobalObject.h: * bindings/js/JSDOMWindowBase.cpp: Added static const GlobalObjectMethodTable and filled it in with the proper function pointers. (WebCore::JSDOMWindowBase::JSDOMWindowBase): (WebCore::JSDOMWindowBase::supportsProfiling): Changed to static to put in the method table. (WebCore::JSDOMWindowBase::supportsRichSourceInfo): Ditto. (WebCore::JSDOMWindowBase::shouldInterruptScript): Ditto. * bindings/js/JSDOMWindowBase.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@99997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
bc3cc922