| Index: test/mjsunit/wasm/table.js
|
| diff --git a/test/mjsunit/wasm/table.js b/test/mjsunit/wasm/table.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..34c01d122f1961ffe14b5464fc351d312581602a
|
| --- /dev/null
|
| +++ b/test/mjsunit/wasm/table.js
|
| @@ -0,0 +1,51 @@
|
| +// Copyright 2016 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Flags: --expose-wasm
|
| +
|
| +// Basic tests.
|
| +
|
| +var outOfUint32RangeValue = 1e20;
|
| +
|
| +(function TestConstructor() {
|
| + assertTrue(WebAssembly.Table instanceof Function);
|
| + assertSame(WebAssembly.Table, WebAssembly.Table.prototype.constructor);
|
| + assertTrue(WebAssembly.Table.prototype.grow instanceof Function);
|
| + assertTrue(WebAssembly.Table.prototype.get instanceof Function);
|
| + assertTrue(WebAssembly.Table.prototype.set instanceof Function);
|
| + let desc = Object.getOwnPropertyDescriptor(WebAssembly.Table.prototype, 'length');
|
| + assertTrue(desc.get instanceof Function);
|
| + assertSame(undefined, desc.set);
|
| +
|
| + assertThrows(() => new WebAssembly.Table(), TypeError);
|
| + assertThrows(() => new WebAssembly.Table(1), TypeError);
|
| + assertThrows(() => new WebAssembly.Table(""), TypeError);
|
| +
|
| + assertThrows(() => new WebAssembly.Table({}), TypeError);
|
| + assertThrows(() => new WebAssembly.Table({initial: 10}), TypeError);
|
| +
|
| + assertThrows(() => new WebAssembly.Table({element: 0, initial: 10}), TypeError);
|
| + assertThrows(() => new WebAssembly.Table({element: "any", initial: 10}), TypeError);
|
| +
|
| + assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: -1}), RangeError);
|
| + assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: outOfUint32RangeValue}), RangeError);
|
| +
|
| + assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: 10, maximum: -1}), RangeError);
|
| + assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: 10, maximum: outOfUint32RangeValue}), RangeError);
|
| + assertThrows(() => new WebAssembly.Table({element: "anyfunc", initial: 10, maximum: 9}), RangeError);
|
| +
|
| + let table = new WebAssembly.Table({element: "anyfunc", initial: 1});
|
| + assertSame(WebAssembly.Table.prototype, table.__proto__);
|
| + assertSame(WebAssembly.Table, table.constructor);
|
| + assertTrue(table instanceof Object);
|
| + assertTrue(table instanceof WebAssembly.Table);
|
| +})();
|
| +
|
| +(function TestConstructorWithMaximum() {
|
| + let table = new WebAssembly.Table({element: "anyfunc", initial: 1, maximum: 10});
|
| + assertSame(WebAssembly.Table.prototype, table.__proto__);
|
| + assertSame(WebAssembly.Table, table.constructor);
|
| + assertTrue(table instanceof Object);
|
| + assertTrue(table instanceof WebAssembly.Table);
|
| +})();
|
|
|