- From: <bugzilla@jessica.w3.org>
- Date: Mon, 28 Apr 2014 07:49:53 +0000
- To: public-webapps@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25489 Bug ID: 25489 Summary: [Imports]: Script execution order is non-deterministic in cyclic cases Product: WebAppsWG Version: unspecified Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Component Model Assignee: dglazkov@chromium.org Reporter: gkrizsanits@mozilla.com QA Contact: public-webapps-bugzilla@w3.org CC: mike@w3.org, public-webapps@w3.org As it is currently specced, it's hard to see why would the right edge be marked as cycle and not a random one from the cycle. M---> I1--->I4<- |\ | | | --> I2 <---- | | | | | v | ----> I3-------- Arrows represents links. If the parser is not blocked then the three edges of the circle between I2, I3, I4 might be found in random order. For example if between I1 and I4 there is a long chain of imports than I4->I2 directed path will be found late and because of it I4->I2 will be marked as cycle, since I3->I4 is already in, and at that point in time it was not considered as a cycle. It's easy to see from here that, Execution order of I4 and I3 is based on luck mostly. For me it's obvious that the intention should be to execute I3 first in this example and mark I3->I4 as the cycle, but speccing that way needs a bit more work and the algorithm might be significantly more complicated because of this... Sorry for the ASCII, but I think this is the simplest way to illustrate the problem. -- You are receiving this mail because: You are on the CC list for the bug.
Received on Monday, 28 April 2014 07:49:54 UTC