You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>ResolveExport is side-effect free. Each time this operation is called with a specific _exportName_, _resolveSet_ pair as arguments it must return the same result. An implementation might choose to pre-compute or cache the ResolveExport results for the [[Exports]] of each module namespace exotic object.</p>
<emu-note type="editor">This section is defined in the <a href="https://tc39.es/proposal-defer-import-eval/#sec-GetModuleExportsList">Deferred Imports Evaluation</a> proposal.</emu-note>
67
+
68
+
<!-- not using type="abstract operation" to auto-generate this description, because it does not support inserting an <emu-note> at the beginning. -->
69
+
<p>The abstract operation <dfn style="font-style: inherit">GetModuleExportsList</dfn> takes argument _O_ (a module namespace exotic object) and returns either a normal completion containing a List of Strings, or a throw completion. It returns a List whose elements are the names of the module's exports, triggering module evaluation if needed. It performs the following steps when called:</p>
70
+
<emu-alg>
71
+
1. If _O_.[[Deferred]] is *true*, then
72
+
1. Let _m_ be _O_.[[Module]].
73
+
1. If ReadyForSyncExecution(_m_, <ins>« »</ins>) is *false*, throw a *TypeError* exception.
<ins>_importedNames_: ~all~ or a List of Strings,</ins>
83
+
optional _seen_: a List of Module Records,
84
+
): a Boolean
85
+
</h1>
86
+
<dl class="header"></dl>
87
+
<emu-alg>
88
+
1. If _module_ is not a Cyclic Module Record, return *true*.
89
+
1. If _seen_ is not present, set _seen_ to a new empty List.
90
+
1. If _seen_ contains _module_, return *true*.
91
+
1. Append _module_ to _seen_.
92
+
1. If _module_.[[Status]] is ~evaluated~, return *true*.
93
+
1. If _module_.[[Status]] is ~evaluating~ or ~evaluating-async~, return *false*.
94
+
1. Assert: _module_.[[Status]] is ~linked~.
95
+
1. If _module_.[[HasTLA]] is *true*, return *false*.
96
+
1. <ins>Let _requests_ be the list-concatenation of _module_.[[RequestedModules]] and _module_.GetOptionalIndirectExportsModuleRequests(_importedNames_ ).</ins>
97
+
1. For each ModuleRequest Record _request_ of <del>_module_.[[RequestedModules]]</del><ins>_requests_</ins>, do
98
+
1. Let _requiredModule_ be GetImportedModule(_module_, _request_).
99
+
1. If ReadyForSyncExecution(_requiredModule_, <ins>_request_.[[ImportedNames]],</ins> _seen_) is *false*, then
0 commit comments