| //@ skip if $memoryLimited or ($architecture != "arm64" && $architecture != "x86-64") |
| // We don't support WebAssembly everywhere, so check for its existance before doing anything else. |
| let bigArray = new Array(0x7000000); |
| var index = array.length; |
| if (index >= bigArray.length || (index - 0x1ffdc01) < 0) |
| return bigArray[index - 0x1ffdc01]; |
| var okArray = new Uint8Array(0x1ffdc02); |
| for (var i = 0; i < 10000; ++i) |
| var memory = new WebAssembly.Memory({ initial: 0x1000, maximum: maxSize }); |
| memory.grow(maxSize - 0x1000); |
| var result = foo(new Uint8Array(memory.buffer)); |
| throw "Error: bad result at end: " + result; |
| var memory = new WebAssembly.Memory({ initial: 0x1000, maximum: maxSize+1 }); |
| memory.grow(maxSize + 1 - 0x1000); |
| var result = foo(new Uint8Array(memory.buffer)); |
| if (e.toString() != "RangeError: WebAssembly.Memory 'maximum' page count is too large") |
| throw "Error: did not throw error"; |