| 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. |