Source code

Revision control

Copy as Markdown

Other Tools

// |jit-test| skip-if: !this.gczeal || !WebAssembly.Global
gczeal(9, 10);
function wasmEvalText(str, imports) {
let binary = wasmTextToBinary(str);
m = new WebAssembly.Module(binary);
return new WebAssembly.Instance(m, imports);
}
assertEq(wasmEvalText(`(module
(global (import "a" "b") i32)
(export "g" (global 0))
(func (export "get") (result i32) global.get 0))`,
{ a: { b: 42 }}).exports.get(),
42);
for (let v of []) {}
function testInitExpr(type, initialValue, nextValue, coercion, assertFunc = assertEq) {
var module = wasmEvalText(`(module
(import "globals" "a" (global ${type}))
(global $glob_imm ${type} (global.get 0))
(export "global_imm" (global $glob_imm))
)`, {
globals: {
a: coercion(initialValue)
}
}).exports;
}
testInitExpr('i32', 13, 37, x => x | 0);