Currently host functions reuse JSFunction's ScopeChain as storage for their NativeFunction (the C function pointer to the host function implementation). Instead, move this onto NativeExecutable. This will allow host functions to have a scopechain (which will be implemented as a separate patch).
Created attachment 56293 [details] The patch No perf impact.
Attachment 56293 [details] did not build on mac: Build output: http://webkit-commit-queue.appspot.com/results/2247251
Created attachment 56299 [details] Fix JSGlue build; add caching of NativeExecutables on JSGlobalData.
Created attachment 56302 [details] Fix WebCore build.
Attachment 56293 [details] did not build on gtk: Build output: http://webkit-commit-queue.appspot.com/results/2284275
Comment on attachment 56302 [details] Fix WebCore build. r=me Looks like JSLazyEventListener may need to #include JSFunction.h, or something: ../../WebCore/bindings/js/JSLazyEventListener.cpp: In member function ‘virtual JSC::JSObject* WebCore::JSLazyEventListener::initializeJSFunction(WebCore::ScriptExecutionContext*) const’: ../../WebCore/bindings/js/JSLazyEventListener.cpp:125: error: ‘class JSC::JSFunction’ has no member named ‘setScope’ make[1]: *** [WebCore/bindings/js/libwebkit_1_0_la-JSLazyEventListener.lo] Error 1
Transmitting file data .................... Committed revision 59637.