1// META: global=window,dedicatedworker,jsshell 2// META: script=/wasm/jsapi/assertions.js 3// META: script=/wasm/jsapi/memory/assertions.js 4 5test(() => { 6 assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": 10, "shared": true })); 7}, "Shared memory without maximum"); 8 9test(t => { 10 const order = []; 11 12 new WebAssembly.Memory({ 13 get maximum() { 14 order.push("maximum"); 15 return { 16 valueOf() { 17 order.push("maximum valueOf"); 18 return 1; 19 }, 20 }; 21 }, 22 23 get initial() { 24 order.push("initial"); 25 return { 26 valueOf() { 27 order.push("initial valueOf"); 28 return 1; 29 }, 30 }; 31 }, 32 33 get shared() { 34 order.push("shared"); 35 return { 36 valueOf: t.unreached_func("should not call shared valueOf"), 37 }; 38 }, 39 }); 40 41 assert_array_equals(order, [ 42 "initial", 43 "initial valueOf", 44 "maximum", 45 "maximum valueOf", 46 "shared", 47 ]); 48}, "Order of evaluation for descriptor (with shared)"); 49 50test(() => { 51 const argument = { "initial": 4, "maximum": 10, shared: true }; 52 const memory = new WebAssembly.Memory(argument); 53 assert_Memory(memory, { "size": 4, "shared": true }); 54}, "Shared memory"); 55