- 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