- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Tue, 28 Aug 2012 13:03:07 -0400
- To: Ian Hickson <ian@hixie.ch>
- Cc: whatwg@lists.whatwg.org
On 8/28/12 2:12 AM, Ian Hickson wrote: > On Tue, 28 Aug 2012, Boris Zbarsky wrote: >> As far as I can tell, "0 1 2" in your testcase at >> http://damowmow.com/playground/demos/document-write-and-scripts/002.html is >> consistent with the following order of execution: >> >> 1) x=0 >> 2) x1=0,x=1 (nothing else has run yet because we're waiting on >> blank.js) >> 3) setTimeout fires, sets x2 = 1 >> 3) second external script runs, sets x = 2. > > There's only one external script. The script after the style sheet is > internal. Agreed. > If it blocks, you get "0 1 2" (when x2 gets set to x in the > timeout, it's still x=1, because the next script, which sets x=2, hasn't > run). In Gecko, however, that internal script doesn't block, and so the > timeout runs after x has been set to 2. Hence "0 2 2". Right. > The reason for having the external script in 002.html is that it causes > document.write() to return right there Ah, I see. So is what you're proposing that stylesheets that are inserted by a "nested tokenizer" not block scripts in general, but stylesheets that are inserted by a top-level tokenizer block scripts as usual? Or is what you're proposing that scripts that are inserted by a "nested tokenizer" not block on stylesheets? -Boris
Received on Tuesday, 28 August 2012 17:03:49 UTC