diff options
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/memory-size.js')
-rw-r--r-- | deps/v8/test/mjsunit/wasm/memory-size.js | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/deps/v8/test/mjsunit/wasm/memory-size.js b/deps/v8/test/mjsunit/wasm/memory-size.js index 0c96efb798..f803df2e3d 100644 --- a/deps/v8/test/mjsunit/wasm/memory-size.js +++ b/deps/v8/test/mjsunit/wasm/memory-size.js @@ -7,8 +7,11 @@ load("test/mjsunit/wasm/wasm-constants.js"); load("test/mjsunit/wasm/wasm-module-builder.js"); +var kV8MaxWasmMemoryPages = 32767; // ~ 2 GiB +var kSpecMaxWasmMemoryPages = 65536; // 4 GiB + (function testMemorySizeZero() { - print("testMemorySizeZero()"); + print(arguments.callee.name); var builder = new WasmModuleBuilder(); builder.addMemory(0, 0, false); builder.addFunction("memory_size", kSig_i_v) @@ -19,7 +22,7 @@ load("test/mjsunit/wasm/wasm-module-builder.js"); })(); (function testMemorySizeNonZero() { - print("testMemorySizeNonZero()"); + print(arguments.callee.name); var builder = new WasmModuleBuilder(); var size = 11; builder.addMemory(size, size, false); @@ -29,3 +32,42 @@ load("test/mjsunit/wasm/wasm-module-builder.js"); var module = builder.instantiate(); assertEquals(size, module.exports.memory_size()); })(); + +(function testMemorySizeSpecMaxOk() { + print(arguments.callee.name); + var builder = new WasmModuleBuilder(); + builder.addMemory(1, kSpecMaxWasmMemoryPages, true); + builder.addFunction("memory_size", kSig_i_v) + .addBody([kExprMemorySize, kMemoryZero]) + .exportFunc(); + var module = builder.instantiate(); + assertEquals(1, module.exports.memory_size()); +})(); + +(function testMemorySizeV8MaxPlus1Throws() { + print(arguments.callee.name); + var builder = new WasmModuleBuilder(); + builder.addMemory(kV8MaxWasmMemoryPages + 1, + kV8MaxWasmMemoryPages + 1, false); + builder.addFunction("memory_size", kSig_i_v) + .addBody([kExprMemorySize, kMemoryZero]) + .exportFunc(); + assertThrows(() => builder.instantiate()); +})(); + +(function testMemorySpecMaxOk() { + print(arguments.callee.name); + var builder = new WasmModuleBuilder(); + builder.addMemory(1, kSpecMaxWasmMemoryPages, false); + builder.addFunction("memory_size", kSig_i_v) + .addBody([kExprMemorySize, kMemoryZero]) + .exportFunc(); + var module = builder.instantiate(); + assertEquals(1, module.exports.memory_size()); +})(); + +(function testMemoryInitialMaxPlus1Throws() { + print(arguments.callee.name); + assertThrows(() => new WebAssembly.Memory( + {initial: kV8WasmMaxMemoryPages + 1})); +})(); |