Bug 23552 - Dashcode evaluator no longer works after making ExecStates actual call frames
Summary: Dashcode evaluator no longer works after making ExecStates actual call frames
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Cameron Zwarich (cpst)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-26 14:49 PST by Cameron Zwarich (cpst)
Modified: 2009-01-27 14:56 PST (History)
1 user (show)

See Also:


Attachments
Proposed patch (12.13 KB, patch)
2009-01-26 15:02 PST, Cameron Zwarich (cpst)
barraclough: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Cameron Zwarich (cpst) 2009-01-26 14:49:25 PST
Dashcode will crash and burn hard when using the evaluator because it saves a global call frame, even after global code has finished executing, and then uses this as a launching pad to execute new JS in the evaluator. The fix is to detect when Dashcode is attempting to do this and execute code from a global call frame instead.
Comment 1 Cameron Zwarich (cpst) 2009-01-26 15:02:55 PST
Created attachment 27052 [details]
Proposed patch

There is a Radar for this, I just don't know the number. I should probably put it in the ChangeLog.

I noticed something odd with this patch -- the global scope chain's ref count never seems to decrease when using the evaluator. I don't see how this could have been caused by my patch, but I should figure out why this is happening after this patch lands and fix it.
Comment 2 Gavin Barraclough 2009-01-26 15:15:12 PST
The radar for this bug is rdar://problem/6398839
Comment 3 Cameron Zwarich (cpst) 2009-01-26 15:58:32 PST
Landed in r40274.