Source code
Revision control
Copy as Markdown
Other Tools
// |jit-test| skip-if: !wasmJSPromiseIntegrationEnabled()
// An OOM during the synthetic module construction performed by
// WebAssembly.promising() (and by the WebAssembly.Suspending wrapper built at
// instantiation time) must leave a pending exception, rather than returning to
// the caller with no exception set.
var ins = new WebAssembly.Instance(
new WebAssembly.Module(wasmTextToBinary(`(module (func (export "f")))`)));
oomTest(function() {
return WebAssembly.promising(ins.exports.f);
});
var susp = new WebAssembly.Suspending(() => Promise.resolve(42));
var mod = new WebAssembly.Module(wasmTextToBinary(`(module
(import "" "s" (func $s (result i32)))
(func (export "f") (result i32) call $s)
)`));
oomTest(function() {
return new WebAssembly.Instance(mod, {"": { s: susp }});
});