Source code
Revision control
Copy as Markdown
Other Tools
// |jit-test| skip-if: !wasmJSPromiseIntegrationEnabled()
async function run() {
let jsSuspendingImport = () => minorgc();
let wrappedSuspendingImport = new WebAssembly.Suspending(jsSuspendingImport);
let imports = {
env: {
suspending_import: wrappedSuspendingImport
}
};
var instance = wasmEvalText(`
(module
(type $ref_array (array (mut externref)))
(import "env" "suspending_import" (func $suspending_import (result externref)))
(func $trigger (export "trigger") (param $dummy externref) (result externref)
(local $arr (ref $ref_array))
(local.set $arr (array.new $ref_array (local.get $dummy) (i32.const 10)))
(call $suspending_import)
(drop)
(array.get $ref_array (local.get $arr) (i32.const 0))
)
)
`, imports);
const trigger = WebAssembly.promising(instance.exports.trigger);
await trigger({dummy: "dummy"});
}
run();