[Webkit-unassigned] [Bug 52075] Don't assert when trying to recompile JS while executing JS

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 10 15:11:21 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=52075





--- Comment #6 from Joe Mason <jmason at rim.com>  2011-01-10 15:11:21 PST ---
Ah, now that I look closer the call stack is actually:

JSC::Interpreter::execute
...
WebCore::Chrome::runJavaScriptAlert
...
platform code to run a nested event loop
...
WebCore::Timer<WebCore::ScriptDebugServer>::fired()
WebCore::ScriptDebugServer::recompileAllJSFunctions
JSC::Debugger::recompileAllJSFunctions

So the question is why dynamicGlobalObject is not set here.

ScriptDebugServer::recompileAllJSFunctions is:


    JSLock lock(SilenceAssertionsOnly);
    // If JavaScript stack is not empty postpone recompilation.
    if (JSDOMWindow::commonJSGlobalData()->dynamicGlobalObject)
        recompileAllJSFunctionsSoon();
    else
        Debugger::recompileAllJSFunctions(JSDOMWindow::commonJSGlobalData());

And then JSC::Debugger::recompileAllJSFunctions is:

    void Debugger::recompileAllJSFunctions(JSGlobalData* globalData)
    {
        ASSERT(!globalData->dynamicGlobalObject);

So unless JSDOMWindow::commonJSGlobalData() returns a different object every time its called, it's just repeating the same test twice, and passing the first time but failing the second time.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list