Source code

Revision control

Copy as Markdown

Other Tools

// |jit-test| --more-compartments; skip-variant-if: --setpref=wasm_test_serialization=true, true; skip-variant-if: --wasm-compiler=ion, true; skip-if: !wasmGcEnabled() || !('Function' in WebAssembly)
a = newGlobal();
a.b = this;
a.eval("(" + function () {
Debugger(b).onExceptionUnwind = function () {}
} + ")()");
function c(d) {
binary = wasmTextToBinary(d)
e = new WebAssembly.Module(binary)
return new WebAssembly.Instance(e)
}
f = c(`
(type $g
(func (param i64 i64 funcref) (result i64))
)
(func (export "vis") (param i64 i64 funcref) (result i64)
local.get 0
local.get 1
local.get 2
local.get 2
ref.cast (ref $g)
return_call_ref $g
)
`);
h = f.exports["vis"];
i = new WebAssembly.Function({
parameters: [ "i64", "i64", "funcref" ], results: ["i64"]
}, function () {});
assertErrorMessage(
() => h(3n, 1n, i),
TypeError, /can't convert undefined to BigInt/
);