18:07
<Kris Kowal>
I do not think my understanding of the meaning of “initialization” matches in that case, but this is an area I haven’t read 262 closely enough to speak with confidence. I interpret “link” to mean “establish connections between the module lexical scopes of a module graph such that corresponding imported and exported values refer to the same memory”. I interpret “initialize” to mean “assign initial values into the module lexical scope for hoisted imports and exports like function declarations”. I interpret “evaluate” to be the subsequent execution of the module, which is synchronous up to the first await. I’m foggy on top-level-await behavior beyond that.
18:08
<Kris Kowal>
Please correct me where my terms don’t match the shared vernacular as writ.
18:14
<nicolo-ribaudo>
The spec matches your wording, except that the Initialize AO is called by the Link AO for each module (so they are interleaved processes)
18:23
<Kris Kowal>
That’s good to know.
18:25
<Kris Kowal>
when you say "since the module initialization of (presumably) x.js has run to completion by the time x’s namespace is seen in a new event." -- do you mean module evaluation? because initialization has run in the deferred case, not in the dynamic import case. Evaluation for both happens at the same point in time.
And I think that yulia is correct that I meant evaluation, not link/init, but I’m again foggy on the ramifications of top-level-await in relation to the time that the promise returned by a dynamic import settles.