blob: c747bbd7112613cd6e5227b7924ab62bbadcc730 [file] [edit]
// Awaiting a chain of distinct async functions makes each microtask resume a
// different function, stressing the microtask call cache in the drain loop.
async function d5() { return 42; }
async function d4() { return await d5(); }
async function d3() { return await d4(); }
async function d2() { return await d3(); }
async function d1() { return await d2(); }
async function run() {
let acc = 0;
for (let i = 0; i < 1e5; i++)
acc += await d1();
return acc;
}
run();
drainMicrotasks();