-
mhahnenberg@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=80330 Reviewed by Filip Pizlo. This change is performance neutral on the JS benchmarks we track. It's mostly to improve page load performance, which currently does at least a couple full GCs per navigation. * heap/Heap.cpp: (JSC::Heap::discardAllCompiledCode): Rename recompileAllJSFunctions to discardAllCompiledCode because the function doesn't actually recompile anything (and never did); it simply throws code away for it to be recompiled later if we determine we should do so. (JSC): (JSC::Heap::collectAllGarbage): (JSC::Heap::addFunctionExecutable): Adds a newly created FunctionExecutable to the Heap's list. (JSC::Heap::removeFunctionExecutable): Removes the specified FunctionExecutable from the Heap's list. * heap/Heap.h: (JSC): (Heap): * runtime/Executable.cpp: Added next and prev fields to FunctionExecutables so that they can be used in DoublyLinkedLists. (JSC::FunctionExecutable::FunctionExecutable): (JSC::FunctionExecutable::finalize): Removes the FunctionExecutable from the Heap's list. * runtime/Executable.h: (FunctionExecutable): (JSC::FunctionExecutable::create): Adds the FunctionExecutable to the Heap's list. * runtime/JSGlobalData.cpp: Remove recompileAllJSFunctions, as it's the Heap's job to own and manage the list of FunctionExecutables. * runtime/JSGlobalData.h: (JSGlobalData): * runtime/JSGlobalObject.cpp: (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): Use the new discardAllCompiledCode. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@112624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
cab4752f