assert.sameValue(typeof WebAssembly.Memory, "function", "constructor exists");
var m = new WebAssembly.Memory({ initial: 1 });
assert.sameValue(m.buffer.byteLength, 65536, "1 page = 64 KiB");
var old = m.grow(2);
assert.sameValue(old, 1, "grow returns old page count");
assert.sameValue(m.buffer.byteLength, 3 * 65536, "buffer grew to 3 pages");
var capped = new WebAssembly.Memory({ initial: 1, maximum: 2 });
var threw = false;
try { capped.grow(5); } catch (e) { threw = e instanceof RangeError; }
assert.sameValue(threw, true, "grow past maximum throws RangeError");
assert.sameValue(capped.grow(1), 1, "grow within maximum succeeds");
assert.sameValue(capped.buffer.byteLength, 2 * 65536, "at maximum");