blob: 11cfb164bb641ef34e21db056927dca367c37e6d [file] [log] [blame]
//@ skip if $architecture == "arm"
//@ requireOptions("--useWebAssemblyFastMemory=true")
import * as assert from '../assert.js';
import { instantiate } from '../wabt-wrapper.js';
async function test() {
const instance = await instantiate(`
(module
(memory 0)
(func $grow
(memory.grow (i32.const 1))
(drop)
)
(func $f (param $bail i32)
(br_if 0 (local.get $bail))
(call $grow)
(i32.store (i32.const 42) (i32.const 0))
)
(func (export "main")
(local $i i32)
(local.set $i (i32.const 100000))
(loop
(i32.sub (local.get $i) (i32.const 1))
(local.tee $i)
(call $f (i32.const 1))
(br_if 0)
)
(call $f (i32.const 0))
)
)
`);
// This should not throw an OutOfBounds exception
instance.exports.main();
}
assert.asyncTest(test());