1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-01 09:24:20 -04:00
denoland-deno/cli/tests/top_level_await_loop.js
Bartek Iwańczuk 135053486c
fix: top-level-await module execution (#7946)
This commit changes implementation of top-level-await in "deno_core".

Previously promise returned from module evaluation was not awaited,
leading to out-of-order execution of modules that have TLA. It's been
fixed by changing "JsRuntime::mod_evaluate" to be an async function
that resolves when the promise returned from module evaluation also
resolves. When waiting for promise resolution event loop is polled
repeatedly, until there are no more dynamic imports or pending
ops.
2020-10-14 14:04:09 +02:00

18 lines
431 B
JavaScript

const importsDir = Deno.readDirSync(Deno.realPathSync("./tla2"));
const resolvedPaths = [];
for (const { name } of importsDir) {
const filePath = Deno.realPathSync(`./tla2/${name}`);
resolvedPaths.push(filePath);
}
resolvedPaths.sort();
for (const filePath of resolvedPaths) {
console.log("loading", filePath);
const mod = await import(`file://${filePath}`);
console.log("loaded", mod);
}
console.log("all loaded");