Source code
Revision control
Copy as Markdown
Other Tools
// |jit-test| skip-if: !wasmJSPromiseIntegrationEnabled()
let count = 0;
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
dbg.onEnterFrame = function(f) {
count += 1;
};
g.eval(`
var ins = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(\`
(module
(import "" "imp" (func $imp))
(import "" "susp" (func $susp (result i32)))
(func (export "run") (result i32)
call $imp
call $susp
drop
call $imp
i32.const 1
)
)
\`)), {
"": {
imp: function imp() { saveStack(); },
susp: new WebAssembly.Suspending(async () => { await 0; return 1; })
}
});
var run = WebAssembly.promising(ins.exports.run);
run();
(function f() { drainJobQueue(); })();
`);
assertEq(count, 7);