diff options
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/table-copy.js')
-rw-r--r-- | deps/v8/test/mjsunit/wasm/table-copy.js | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/deps/v8/test/mjsunit/wasm/table-copy.js b/deps/v8/test/mjsunit/wasm/table-copy.js index 89572fa41e..7c5c49669f 100644 --- a/deps/v8/test/mjsunit/wasm/table-copy.js +++ b/deps/v8/test/mjsunit/wasm/table-copy.js @@ -4,7 +4,6 @@ // Flags: --experimental-wasm-bulk-memory -load("test/mjsunit/wasm/wasm-constants.js"); load("test/mjsunit/wasm/wasm-module-builder.js"); (function TestTableCopyInbounds() { @@ -20,7 +19,7 @@ load("test/mjsunit/wasm/wasm-module-builder.js"); kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, - kNumericPrefix, kExprTableCopy, kTableZero]) + kNumericPrefix, kExprTableCopy, kTableZero, kTableZero]) .exportAs("copy"); let instance = builder.instantiate(); @@ -30,9 +29,6 @@ load("test/mjsunit/wasm/wasm-module-builder.js"); copy(0, i, kTableSize - i); copy(i, 0, kTableSize - i); } - let big = 1000000; - copy(big, 0, 0); // nop - copy(0, big, 0); // nop })(); function addFunction(builder, k) { @@ -75,7 +71,7 @@ function assertTable(obj, ...elems) { kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, - kNumericPrefix, kExprTableCopy, kTableZero]) + kNumericPrefix, kExprTableCopy, kTableZero, kTableZero]) .exportAs("copy"); builder.addExportOfKind("table", kExternalTable, 0); @@ -129,7 +125,7 @@ function assertCall(call, ...elems) { kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, - kNumericPrefix, kExprTableCopy, kTableZero]) + kNumericPrefix, kExprTableCopy, kTableZero, kTableZero]) .exportAs("copy"); builder.addFunction("call", sig_i_i) @@ -165,7 +161,7 @@ function assertCall(call, ...elems) { kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, - kNumericPrefix, kExprTableCopy, kTableZero]) + kNumericPrefix, kExprTableCopy, kTableZero, kTableZero]) .exportAs("copy"); let instance = builder.instantiate(); @@ -176,6 +172,13 @@ function assertCall(call, ...elems) { assertThrows(() => copy(1, 0, kTableSize)); assertThrows(() => copy(0, 1, kTableSize)); + { + let big = 1000000; + assertThrows(() => copy(big, 0, 0)); + assertThrows(() => copy(0, big, 0)); + } + + for (let big = 4294967295; big > 1000; big >>>= 1) { assertThrows(() => copy(big, 0, 1)); assertThrows(() => copy(0, big, 1)); @@ -187,6 +190,7 @@ function assertCall(call, ...elems) { assertThrows(() => copy(0, big, 1)); assertThrows(() => copy(0, 0, big)); } + })(); (function TestTableCopyShared() { @@ -221,7 +225,7 @@ function assertCall(call, ...elems) { kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, - kNumericPrefix, kExprTableCopy, kTableZero]) + kNumericPrefix, kExprTableCopy, kTableZero, kTableZero]) .exportAs("copy"); builder.addFunction("call", sig_i_i) |