Opened 8 years ago
Closed 8 years ago
#15792 closed defect (fixed)
loader executes modules before giving circular dependencies a chance to resolve in legacy async mode
Reported by: | Rawld Gill | Owned by: | Rawld Gill |
---|---|---|---|
Priority: | blocker | Milestone: | 1.8 |
Component: | Loader | Version: | 1.7.3 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
In sync mode, there is nothing that can be done about circular dependencies other than reorganize the code since the load order is implied by the code. However, in all the other modes (async and the two legacy async modes), the load algorithm should try to avoid circular dependencies if possible.
An example is a module that depends on a dojo/has! condition in the deps vector. When encountered, that dojo/has will require
the appropriate module, and
require
will try to immediately execute that module...and this can cause a circular dependency.
This case is handled correctly for async mode, but not for the two legacy async modes.
Change History (3)
comment:1 Changed 8 years ago by
Milestone: | tbd → 1.8 |
---|---|
Priority: | undecided → blocker |
Status: | new → assigned |
In [29419]: