Source code
Revision control
Copy as Markdown
Other Tools
// Tests with types that are defined in the module internally.
// Suspending function with internal struct parameter.
assertErrorMessage(() => {
const sf = new WebAssembly.Suspending(async () => {});
const ins = wasmEvalText(`(module
(type $pair (struct (field i32) (field i32)))
(import "" "sf" (func $sf (param (ref $pair))))
)`, {"": {sf,}});
}, TypeError, "Unsupported JSPI function argument type");
// Suspending function with internal struct result.
assertErrorMessage(() => {
const sf = new WebAssembly.Suspending(async () => {});
const ins = wasmEvalText(`(module
(type $pair (struct (field i32) (field i32)))
(import "" "sf" (func $sf (result (ref $pair))))
)`, {"": {sf,}});
}, TypeError, "Unsupported JSPI function argument type");
// Promising function with internal struct parameter.
assertErrorMessage(() => {
const ins = wasmEvalText(`(module
(type $pair (struct (field i32) (field i32)))
(func (export "e") (param (ref $pair))
unreachable
)
)`);
var p = WebAssembly.promising(ins.exports.e);
}, TypeError, "Unsupported JSPI function argument type");
// Promising function with internal struct result.
assertErrorMessage(() => {
const ins = wasmEvalText(`(module
(type $pair (struct (field i32) (field i32)))
(func (export "e") (result (ref $pair))
unreachable
)
)`);
var p = WebAssembly.promising(ins.exports.e);
}, TypeError, "Unsupported JSPI function argument type");