This showed up on the chromium reliability bots. Here's a test case: <html> <body> <script> setTimeout("document.write('foo');", 1000); </script> <script src="script-which-takes-2s-to-load.js"></script> </body> </html>
Ah. We don't know that we're still executing script while the timeout is going. So we don't return the proper value from executingScript() and end up getting ourselves deleted... I think.
Oh, I mis-read. The parser will still be alive! We're just getting a delayed document.write() callback while we're waiting for another script to load. So the parser will be paused, but the document.write will be from some other script. Shouldn't be too hard to debug.
Created attachment 58917 [details] layout test
Created attachment 58921 [details] work in progress
Created attachment 58923 [details] Patch
Comment on attachment 58923 [details] Patch LGTM.
This might break pages, but it's good to agree with the spec an mindfield.
Comment on attachment 58923 [details] Patch I think this is one of the handful of evangelism bugs Henri has open.
Committed r61286: <http://trac.webkit.org/changeset/61286>