Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -26829,7 +26829,9 @@ <h1>Cyclic Module Records</h1>
a Cyclic Module Record or ~empty~
</td>
<td>
The first visited module of the cycle, the root DFS ancestor of the strongly connected component. For a module not in a cycle, this would be the module itself. Once Evaluate has completed, a module's [[DFSAncestorIndex]] is the depth-first traversal index of its [[CycleRoot]].
<p>This field is initially ~empty~. Once InnerModuleEvaluation runs on a module's strongly connected component withuot returning a throw completion, it's updated to be the first visited module of the SCC (the root DFS ancestor). For a module not in a cycle, this would be the module itself.</p>
Comment thread
nicolo-ribaudo marked this conversation as resolved.
Outdated

<p>Once this field is set, a module's [[DFSAncestorIndex]] is the depth-first traversal index of its [[CycleRoot]].</p>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -27256,6 +27258,7 @@ <h1>
1. If _requiredModule_.[[Status]] is ~evaluating~, then
1. Set _module_.[[DFSAncestorIndex]] to min(_module_.[[DFSAncestorIndex]], _requiredModule_.[[DFSAncestorIndex]]).
1. Else,
1. Assert: _requiredModule_.[[CycleRoot]] is not ~empty~.
1. Set _requiredModule_ to _requiredModule_.[[CycleRoot]].
1. Assert: _requiredModule_.[[Status]] is either ~evaluating-async~ or ~evaluated~.
1. If _requiredModule_.[[EvaluationError]] is not ~empty~, return ? _requiredModule_.[[EvaluationError]].
Expand All @@ -27280,6 +27283,7 @@ <h1>
1. If _requiredModule_.[[AsyncEvaluationOrder]] is ~unset~, set _requiredModule_.[[Status]] to ~evaluated~.
1. Else, set _requiredModule_.[[Status]] to ~evaluating-async~.
1. If _requiredModule_ and _module_ are the same Module Record, set _done_ to *true*.
1. Assert: _requiredModule_.[[CycleRoot]] is ~empty~.
1. Set _requiredModule_.[[CycleRoot]] to _module_.
1. Return _index_.
</emu-alg>
Expand Down Expand Up @@ -27329,15 +27333,16 @@ <h1>
</dl>
<emu-alg>
1. For each Cyclic Module Record _m_ of _module_.[[AsyncParentModules]], do
1. If _execList_ does not contain _m_ and _m_.[[CycleRoot]].[[EvaluationError]] is ~empty~, then
1. If _execList_ does not contain _m_ and _m_.[[EvaluationError]] is ~empty~, then
1. Assert: _m_.[[Status]] is ~evaluating-async~.
1. Assert: _m_.[[EvaluationError]] is ~empty~.
1. Assert: _m_.[[AsyncEvaluationOrder]] is an integer.
1. Assert: _m_.[[PendingAsyncDependencies]] > 0.
1. Set _m_.[[PendingAsyncDependencies]] to _m_.[[PendingAsyncDependencies]] - 1.
1. If _m_.[[PendingAsyncDependencies]] = 0, then
1. Append _m_ to _execList_.
1. If _m_.[[HasTLA]] is *false*, perform GatherAvailableAncestors(_m_, _execList_).
1. Assert: _m_.[[CycleRoot]] is not ~empty~.
1. If _m_.[[CycleRoot]].[[EvaluationError]] is ~empty~, then
1. Assert: _m_.[[AsyncEvaluationOrder]] is an integer.
1. Assert: _m_.[[PendingAsyncDependencies]] > 0.
1. Set _m_.[[PendingAsyncDependencies]] to _m_.[[PendingAsyncDependencies]] - 1.
1. If _m_.[[PendingAsyncDependencies]] = 0, then
1. Append _m_ to _execList_.
1. If _m_.[[HasTLA]] is *false*, perform GatherAvailableAncestors(_m_, _execList_).
1. Return ~unused~.
</emu-alg>
<emu-note>
Expand Down
Loading