| Index: test/mjsunit/wasm/table.js
 | 
| diff --git a/test/mjsunit/wasm/table.js b/test/mjsunit/wasm/table.js
 | 
| index 0275bc05225c70e5be65032b6e0f0053b5c27cfb..1b56b615850b41a9966ec1ea8c342fad1d590072 100644
 | 
| --- a/test/mjsunit/wasm/table.js
 | 
| +++ b/test/mjsunit/wasm/table.js
 | 
| @@ -45,25 +45,46 @@ function assertTableIsValid(table) {
 | 
|  
 | 
|    assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: int32ButOob}));
 | 
|  
 | 
| -  let table = new WebAssembly.Table({element: "anyfunc", initial: 1});
 | 
| +  let table;
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", initial: 1});
 | 
|    assertTableIsValid(table);
 | 
| -})();
 | 
| +  assertEquals(1, table.length);
 | 
| +  assertEquals(null, table.get(0));
 | 
|  
 | 
| -(function TestConstructorWithMaximum() {
 | 
| -  let table = new WebAssembly.Table({element: "anyfunc", maximum: 10});
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", initial: "2"});
 | 
|    assertTableIsValid(table);
 | 
| -})();
 | 
| +  assertEquals(2, table.length);
 | 
| +  assertEquals(null, table.get(0));
 | 
| +  assertEquals(null, table.get(1));
 | 
|  
 | 
| -(function TestInitialIsUndefined() {
 | 
| -  // New memory with initial = undefined, which means initial = 0.
 | 
| -  let table = new WebAssembly.Table({element: "anyfunc", initial: undefined});
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", initial: {valueOf() { return "1" }}});
 | 
|    assertTableIsValid(table);
 | 
| -})();
 | 
| +  assertEquals(1, table.length);
 | 
| +  assertEquals(null, table.get(0));
 | 
| +
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", initial: undefined});
 | 
| +  assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
| +
 | 
| +  table = new WebAssembly.Table({element: "anyfunc"});
 | 
| +  assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
| +
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", maximum: 10});
 | 
| +  assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
| +
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", maximum: "10"});
 | 
| +  assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
|  
 | 
| -(function TestMaximumIsUndefined() {
 | 
| -  // New memory with maximum = undefined, which means maximum = 0.
 | 
| -  let table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: undefined});
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", maximum: {valueOf() { return "10" }}});
 | 
|    assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
| +
 | 
| +  table = new WebAssembly.Table({element: "anyfunc", initial: 0, maximum: undefined});
 | 
| +  assertTableIsValid(table);
 | 
| +  assertEquals(0, table.length);
 | 
|  })();
 | 
|  
 | 
|  (function TestMaximumIsReadOnce() {
 | 
| @@ -93,3 +114,32 @@ function assertTableIsValid(table) {
 | 
|    let table = new WebAssembly.Table(desc);
 | 
|    assertTableIsValid(table);
 | 
|  })();
 | 
| +
 | 
| +(function TestLength() {
 | 
| +  for (let i = 0; i < 10; ++i) {
 | 
| +    let table = new WebAssembly.Table({element: "anyfunc", initial: i});
 | 
| +    assertEquals(i, table.length);
 | 
| +  }
 | 
| +
 | 
| +  assertThrows(() => WebAssembly.Table.prototype.length.call([]), TypeError);
 | 
| +})();
 | 
| +
 | 
| +(function TestGet() {
 | 
| +  let table = new WebAssembly.Table({element: "anyfunc", initial: 10});
 | 
| +
 | 
| +  for (let i = 0; i < 10; ++i) {
 | 
| +    assertEquals(null, table.get(i));
 | 
| +    assertEquals(null, table.get(String(i)));
 | 
| +  }
 | 
| +  assertEquals(null, table.get(""));
 | 
| +  assertEquals(null, table.get(NaN));
 | 
| +  assertEquals(null, table.get({}));
 | 
| +  assertEquals(null, table.get([]));
 | 
| +  assertEquals(null, table.get(() => {}));
 | 
| +
 | 
| +  assertEquals(undefined, table.get(10));
 | 
| +  assertEquals(undefined, table.get(-1));
 | 
| +
 | 
| +  assertThrows(() => table.get(Symbol()), TypeError);
 | 
| +  assertThrows(() => WebAssembly.Table.prototype.get.call([], 0), TypeError);
 | 
| +})();
 | 
| 
 |