Source code

Revision control

Copy as Markdown

Other Tools

// This tests a case where TokenStreamAnyChars::fillExceptingContext
// mishandled a wasm frame, leading to an assertion failure.
if (!wasmIsSupported())
quit();
const v0 = `
const o6 = {
f() {
function F2() {
if (!new.target) { throw 'must be called with new'; }
}
return F2();
return {}; // This can be anything, but it must be present
},
};
const o7 = {
"main": o6,
};
const v15 = new WebAssembly.Module(wasmTextToBinary(\`
(module
(import "main" "f" (func))
(func (export "go")
call 0
)
)\`));
const v16 = new WebAssembly.Instance(v15, o7);
v16.exports.go();
`;
const o27 = {
// Both "fileName" and null are necessary
"fileName": null,
};
let caught = false;
try {
evaluate(v0, o27);
} catch (e) {
assertEq(e, "must be called with new");
caught = true;
}
assertEq(caught, true);