summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/wasm/table.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/table.js')
-rw-r--r--deps/v8/test/mjsunit/wasm/table.js53
1 files changed, 30 insertions, 23 deletions
diff --git a/deps/v8/test/mjsunit/wasm/table.js b/deps/v8/test/mjsunit/wasm/table.js
index 32bdecad66..0f4a63396e 100644
--- a/deps/v8/test/mjsunit/wasm/table.js
+++ b/deps/v8/test/mjsunit/wasm/table.js
@@ -46,14 +46,14 @@ function assertTableIsValid(table, length) {
assertThrows(() => new WebAssembly.Table({element: "any", initial: 10}), TypeError);
assertThrows(() => new WebAssembly.Table(
- {element: "anyfunc", initial: -1}), RangeError);
+ {element: "anyfunc", initial: -1}), TypeError);
assertThrows(() => new WebAssembly.Table(
- {element: "anyfunc", initial: outOfUint32RangeValue}), RangeError);
+ {element: "anyfunc", initial: outOfUint32RangeValue}), TypeError);
assertThrows(() => new WebAssembly.Table(
- {element: "anyfunc", initial: 10, maximum: -1}), RangeError);
+ {element: "anyfunc", initial: 10, maximum: -1}), TypeError);
assertThrows(() => new WebAssembly.Table(
- {element: "anyfunc", initial: 10, maximum: outOfUint32RangeValue}), RangeError);
+ {element: "anyfunc", initial: 10, maximum: outOfUint32RangeValue}), TypeError);
assertThrows(() => new WebAssembly.Table(
{element: "anyfunc", initial: 10, maximum: 9}), RangeError);
@@ -75,31 +75,25 @@ function assertTableIsValid(table, length) {
assertEquals(null, table.get(0));
assertEquals(undefined, table[0]);
- table = new WebAssembly.Table({element: "anyfunc", initial: undefined});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: 10});
assertTableIsValid(table, 0);
- table = new WebAssembly.Table({element: "anyfunc"});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: "10"});
assertTableIsValid(table, 0);
- table = new WebAssembly.Table({element: "anyfunc", maximum: 10});
- assertTableIsValid(table, 0);
-
- table = new WebAssembly.Table({element: "anyfunc", maximum: "10"});
- assertTableIsValid(table, 0);
-
- table = new WebAssembly.Table({element: "anyfunc", maximum: {valueOf() { return "10" }}});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: {valueOf() { return "10" }}});
assertTableIsValid(table, 0);
table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: undefined});
assertTableIsValid(table, 0);
- table = new WebAssembly.Table({element: "anyfunc", maximum: kMaxUint31});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: kMaxUint31});
assertTableIsValid(table, 0);
- table = new WebAssembly.Table({element: "anyfunc", maximum: kMaxUint32});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: kMaxUint32});
assertTableIsValid(table, 0);
- table = new WebAssembly.Table({element: "anyfunc", maximum: kV8MaxWasmTableSize + 1});
+ table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: kV8MaxWasmTableSize + 1});
assertTableIsValid(table, 0);
})();
@@ -147,10 +141,13 @@ function assertTableIsValid(table, length) {
assertEquals(null, table.get(i));
assertEquals(null, table.get(String(i)));
}
- for (let key of [0.4, "", NaN, {}, [], () => {}]) {
+ for (let key of [0.4, "", []]) {
assertEquals(null, table.get(key));
}
- for (let key of [-1, table.length, table.length * 10]) {
+ for (let key of [-1, NaN, {}, () => {}]) {
+ assertThrows(() => table.get(key), TypeError);
+ }
+ for (let key of [table.length, table.length * 10]) {
assertThrows(() => table.get(key), RangeError);
}
assertThrows(() => table.get(Symbol()), TypeError);
@@ -182,14 +179,19 @@ function assertTableIsValid(table, length) {
assertSame(undefined, table[i]);
}
- for (let key of [0.4, "", NaN, {}, [], () => {}]) {
+ for (let key of [0.4, "", []]) {
assertSame(undefined, table.set(0, null));
assertSame(undefined, table.set(key, f));
assertSame(f, table.get(0));
assertSame(undefined, table[key]);
}
+ for (let key of [NaN, {}, () => {}]) {
+ assertSame(undefined, table[key]);
+ assertThrows(() => table.set(key, f), TypeError);
+ }
- for (let key of [-1, table.length, table.length * 10]) {
+ assertThrows(() => table.set(-1, f), TypeError);
+ for (let key of [table.length, table.length * 10]) {
assertThrows(() => table.set(key, f), RangeError);
}
@@ -220,7 +222,12 @@ function assertTableIsValid(table, length) {
assertSame(f, table[i]);
}
- for (let key of [0.4, "", NaN, {}, [], () => {}]) {
+ for (let key of [NaN, {}, () => {}]) {
+ assertSame(f, table[key] = f);
+ assertSame(f, table[key]);
+ assertThrows(() => table.get(key), TypeError);
+ }
+ for (let key of [0.4, "", []]) {
assertSame(f, table[key] = f);
assertSame(f, table[key]);
assertSame(null, table.get(key));
@@ -252,7 +259,7 @@ function assertTableIsValid(table, length) {
check(table);
table.grow(10);
check(table);
- assertThrows(() => table.grow(-10), RangeError);
+ assertThrows(() => table.grow(-10), TypeError);
table = new WebAssembly.Table({element: "anyfunc", initial: 20, maximum: 25});
init(table);
@@ -264,7 +271,7 @@ function assertTableIsValid(table, length) {
table.grow(0);
check(table);
assertThrows(() => table.grow(1), RangeError);
- assertThrows(() => table.grow(-10), RangeError);
+ assertThrows(() => table.grow(-10), TypeError);
assertThrows(() => WebAssembly.Table.prototype.grow.call([], 0), TypeError);