blob: e02af0fd59b22dcbc5a0db2370d4b04aa2a52080 [file] [log] [blame]
import * as assert from '../assert.js';
import { instantiate } from "../wabt-wrapper.js";
async function test() {
let wat = `
(module
(import "env" "memory" (memory $mem0 1 7 shared))
(func (export "do_fill")
(memory.fill (i32.const 1) (i32.const 37) (i32.const 3))
)
(func (export "get") (param $address i32) (result i32)
(i32.load8_u (local.get $address))
)
)
`;
let memory = new WebAssembly.Memory({initial: 1, maximum: 7, shared: true});
const instance = await instantiate(wat, {env: {"memory": memory}}, {reference_types: true});
assert.eq(instance.exports.get(0), 0);
assert.eq(instance.exports.get(1), 0);
assert.eq(instance.exports.get(2), 0);
assert.eq(instance.exports.get(3), 0);
assert.eq(instance.exports.get(4), 0);
instance.exports.do_fill();
assert.eq(instance.exports.get(0), 0);
assert.eq(instance.exports.get(1), 37);
assert.eq(instance.exports.get(2), 37);
assert.eq(instance.exports.get(3), 37);
assert.eq(instance.exports.get(4), 0);
}
assert.asyncTest(test());