| Index: test/mjsunit/wasm/js-api.js
|
| diff --git a/test/mjsunit/wasm/js-api.js b/test/mjsunit/wasm/js-api.js
|
| index 403bfb4370a0631893f05d5578aaf8ae9137f913..9279234761767f576de59fb0fa21c09acdbb7c23 100644
|
| --- a/test/mjsunit/wasm/js-api.js
|
| +++ b/test/mjsunit/wasm/js-api.js
|
| @@ -64,9 +64,9 @@ let moduleBinaryWithMemSectionAndMemImport = (() => {
|
| // 'WebAssembly' data property on global object
|
| let wasmDesc = Object.getOwnPropertyDescriptor(this, 'WebAssembly');
|
| assertEq(typeof wasmDesc.value, "object");
|
| -assertEq(wasmDesc.writable, true);
|
| -assertEq(wasmDesc.enumerable, false);
|
| -assertEq(wasmDesc.configurable, true);
|
| +assertTrue(wasmDesc.writable);
|
| +assertFalse(wasmDesc.enumerable);
|
| +assertTrue(wasmDesc.configurable);
|
|
|
| // 'WebAssembly' object
|
| assertEq(WebAssembly, wasmDesc.value);
|
| @@ -75,60 +75,60 @@ assertEq(String(WebAssembly), "[object WebAssembly]");
|
| // 'WebAssembly.CompileError'
|
| let compileErrorDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'CompileError');
|
| assertEq(typeof compileErrorDesc.value, "function");
|
| -assertEq(compileErrorDesc.writable, true);
|
| -assertEq(compileErrorDesc.enumerable, false);
|
| -assertEq(compileErrorDesc.configurable, true);
|
| +assertTrue(compileErrorDesc.writable);
|
| +assertFalse(compileErrorDesc.enumerable);
|
| +assertTrue(compileErrorDesc.configurable);
|
| let CompileError = WebAssembly.CompileError;
|
| assertEq(CompileError, compileErrorDesc.value);
|
| assertEq(CompileError.length, 1);
|
| assertEq(CompileError.name, "CompileError");
|
| let compileError = new CompileError;
|
| -assertEq(compileError instanceof CompileError, true);
|
| -assertEq(compileError instanceof Error, true);
|
| -assertEq(compileError instanceof TypeError, false);
|
| +assertTrue(compileError instanceof CompileError);
|
| +assertTrue(compileError instanceof Error);
|
| +assertFalse(compileError instanceof TypeError);
|
| assertEq(compileError.message, "");
|
| assertEq(new CompileError("hi").message, "hi");
|
|
|
| // 'WebAssembly.RuntimeError'
|
| let runtimeErrorDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'RuntimeError');
|
| assertEq(typeof runtimeErrorDesc.value, "function");
|
| -assertEq(runtimeErrorDesc.writable, true);
|
| -assertEq(runtimeErrorDesc.enumerable, false);
|
| -assertEq(runtimeErrorDesc.configurable, true);
|
| +assertTrue(runtimeErrorDesc.writable);
|
| +assertFalse(runtimeErrorDesc.enumerable);
|
| +assertTrue(runtimeErrorDesc.configurable);
|
| let RuntimeError = WebAssembly.RuntimeError;
|
| assertEq(RuntimeError, runtimeErrorDesc.value);
|
| assertEq(RuntimeError.length, 1);
|
| assertEq(RuntimeError.name, "RuntimeError");
|
| let runtimeError = new RuntimeError;
|
| -assertEq(runtimeError instanceof RuntimeError, true);
|
| -assertEq(runtimeError instanceof Error, true);
|
| -assertEq(runtimeError instanceof TypeError, false);
|
| +assertTrue(runtimeError instanceof RuntimeError);
|
| +assertTrue(runtimeError instanceof Error);
|
| +assertFalse(runtimeError instanceof TypeError);
|
| assertEq(runtimeError.message, "");
|
| assertEq(new RuntimeError("hi").message, "hi");
|
|
|
| // 'WebAssembly.LinkError'
|
| let linkErrorDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'LinkError');
|
| assertEq(typeof linkErrorDesc.value, "function");
|
| -assertEq(linkErrorDesc.writable, true);
|
| -assertEq(linkErrorDesc.enumerable, false);
|
| -assertEq(linkErrorDesc.configurable, true);
|
| +assertTrue(linkErrorDesc.writable);
|
| +assertFalse(linkErrorDesc.enumerable);
|
| +assertTrue(linkErrorDesc.configurable);
|
| let LinkError = WebAssembly.LinkError;
|
| assertEq(LinkError, linkErrorDesc.value);
|
| assertEq(LinkError.length, 1);
|
| assertEq(LinkError.name, "LinkError");
|
| let linkError = new LinkError;
|
| -assertEq(linkError instanceof LinkError, true);
|
| -assertEq(linkError instanceof Error, true);
|
| -assertEq(linkError instanceof TypeError, false);
|
| +assertTrue(linkError instanceof LinkError);
|
| +assertTrue(linkError instanceof Error);
|
| +assertFalse(linkError instanceof TypeError);
|
| assertEq(linkError.message, "");
|
| assertEq(new LinkError("hi").message, "hi");
|
|
|
| // 'WebAssembly.Module' data property
|
| let moduleDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Module');
|
| assertEq(typeof moduleDesc.value, "function");
|
| -assertEq(moduleDesc.writable, true);
|
| -assertEq(moduleDesc.enumerable, false);
|
| -assertEq(moduleDesc.configurable, true);
|
| +assertTrue(moduleDesc.writable);
|
| +assertFalse(moduleDesc.enumerable);
|
| +assertTrue(moduleDesc.configurable);
|
|
|
| // 'WebAssembly.Module' constructor function
|
| let Module = WebAssembly.Module;
|
| @@ -142,15 +142,15 @@ assertErrorMessage(() => new Module(1), TypeError, "first argument must be an Ar
|
| assertErrorMessage(() => new Module({}), TypeError, "first argument must be an ArrayBuffer or typed array object");
|
| assertErrorMessage(() => new Module(new Uint8Array()), CompileError, /failed to match magic number/);
|
| assertErrorMessage(() => new Module(new ArrayBuffer()), CompileError, /failed to match magic number/);
|
| -assertEq(new Module(emptyModuleBinary) instanceof Module, true);
|
| -assertEq(new Module(emptyModuleBinary.buffer) instanceof Module, true);
|
| +assertTrue(new Module(emptyModuleBinary) instanceof Module);
|
| +assertTrue(new Module(emptyModuleBinary.buffer) instanceof Module);
|
|
|
| // 'WebAssembly.Module.prototype' data property
|
| let moduleProtoDesc = Object.getOwnPropertyDescriptor(Module, 'prototype');
|
| assertEq(typeof moduleProtoDesc.value, "object");
|
| -assertEq(moduleProtoDesc.writable, false);
|
| -assertEq(moduleProtoDesc.enumerable, false);
|
| -assertEq(moduleProtoDesc.configurable, false);
|
| +assertFalse(moduleProtoDesc.writable);
|
| +assertFalse(moduleProtoDesc.enumerable);
|
| +assertFalse(moduleProtoDesc.configurable);
|
|
|
| // 'WebAssembly.Module.prototype' object
|
| let moduleProto = Module.prototype;
|
| @@ -169,9 +169,9 @@ assertEq(Object.getPrototypeOf(emptyModule), moduleProto);
|
| // 'WebAssembly.Module.imports' data property
|
| let moduleImportsDesc = Object.getOwnPropertyDescriptor(Module, 'imports');
|
| assertEq(typeof moduleImportsDesc.value, "function");
|
| -assertEq(moduleImportsDesc.writable, true);
|
| -assertEq(moduleImportsDesc.enumerable, false);
|
| -assertEq(moduleImportsDesc.configurable, true);
|
| +assertTrue(moduleImportsDesc.writable);
|
| +assertFalse(moduleImportsDesc.enumerable);
|
| +assertTrue(moduleImportsDesc.configurable);
|
|
|
| // 'WebAssembly.Module.imports' method
|
| let moduleImports = moduleImportsDesc.value;
|
| @@ -180,7 +180,7 @@ assertErrorMessage(() => moduleImports(), TypeError, /requires more than 0 argum
|
| assertErrorMessage(() => moduleImports(undefined), TypeError, /first argument must be a WebAssembly.Module/);
|
| assertErrorMessage(() => moduleImports({}), TypeError, /first argument must be a WebAssembly.Module/);
|
| var arr = moduleImports(new Module(emptyModuleBinary));
|
| -assertEq(arr instanceof Array, true);
|
| +assertTrue(arr instanceof Array);
|
| assertEq(arr.length, 0);
|
| let importingModuleBinary2 = (() => {
|
| var text = '(module (func (import "a" "b")) (memory (import "c" "d") 1) (table (import "e" "f") 1 anyfunc) (global (import "g" "⚡") i32))'
|
| @@ -192,7 +192,7 @@ let importingModuleBinary2 = (() => {
|
| return new Int8Array(builder.toBuffer());
|
| })();
|
| var arr = moduleImports(new Module(importingModuleBinary2));
|
| -assertEq(arr instanceof Array, true);
|
| +assertTrue(arr instanceof Array);
|
| assertEq(arr.length, 4);
|
| assertEq(arr[0].kind, "function");
|
| assertEq(arr[0].module, "a");
|
| @@ -210,9 +210,9 @@ assertEq(arr[3].name, "x");
|
| // 'WebAssembly.Module.exports' data property
|
| let moduleExportsDesc = Object.getOwnPropertyDescriptor(Module, 'exports');
|
| assertEq(typeof moduleExportsDesc.value, "function");
|
| -assertEq(moduleExportsDesc.writable, true);
|
| -assertEq(moduleExportsDesc.enumerable, false);
|
| -assertEq(moduleExportsDesc.configurable, true);
|
| +assertTrue(moduleExportsDesc.writable);
|
| +assertFalse(moduleExportsDesc.enumerable);
|
| +assertTrue(moduleExportsDesc.configurable);
|
|
|
| // 'WebAssembly.Module.exports' method
|
| let moduleExports = moduleExportsDesc.value;
|
| @@ -221,7 +221,7 @@ assertErrorMessage(() => moduleExports(), TypeError, /requires more than 0 argum
|
| assertErrorMessage(() => moduleExports(undefined), TypeError, /first argument must be a WebAssembly.Module/);
|
| assertErrorMessage(() => moduleExports({}), TypeError, /first argument must be a WebAssembly.Module/);
|
| var arr = moduleExports(emptyModule);
|
| -assertEq(arr instanceof Array, true);
|
| +assertTrue(arr instanceof Array);
|
| assertEq(arr.length, 0);
|
| let exportingModuleBinary2 = (() => {
|
| var text =
|
| @@ -239,7 +239,7 @@ let exportingModuleBinary2 = (() => {
|
| return new Int8Array(builder.toBuffer());
|
| })();
|
| var arr = moduleExports(new Module(exportingModuleBinary2));
|
| -assertEq(arr instanceof Array, true);
|
| +assertTrue(arr instanceof Array);
|
| assertEq(arr.length, 4);
|
| assertEq(arr[0].kind, "function");
|
| assertEq(arr[0].name, "a");
|
| @@ -253,9 +253,9 @@ assertEq(arr[3].name, "x");
|
| // 'WebAssembly.Instance' data property
|
| let instanceDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Instance');
|
| assertEq(typeof instanceDesc.value, "function");
|
| -assertEq(instanceDesc.writable, true);
|
| -assertEq(instanceDesc.enumerable, false);
|
| -assertEq(instanceDesc.configurable, true);
|
| +assertTrue(instanceDesc.writable);
|
| +assertFalse(instanceDesc.enumerable);
|
| +assertTrue(instanceDesc.configurable);
|
|
|
| // 'WebAssembly.Instance' constructor function
|
| let Instance = WebAssembly.Instance;
|
| @@ -272,15 +272,15 @@ assertErrorMessage(() => new Instance(importingModule, undefined), TypeError, ""
|
| assertErrorMessage(() => new Instance(importingModule, {"":{g:()=>{}}}), LinkError, "");
|
| assertErrorMessage(() => new Instance(importingModule, {t:{f:()=>{}}}), LinkError, "");
|
|
|
| -assertEq(new Instance(emptyModule) instanceof Instance, true);
|
| -assertEq(new Instance(emptyModule, {}) instanceof Instance, true);
|
| +assertTrue(new Instance(emptyModule) instanceof Instance);
|
| +assertTrue(new Instance(emptyModule, {}) instanceof Instance);
|
|
|
| // 'WebAssembly.Instance.prototype' data property
|
| let instanceProtoDesc = Object.getOwnPropertyDescriptor(Instance, 'prototype');
|
| assertEq(typeof instanceProtoDesc.value, "object");
|
| -assertEq(instanceProtoDesc.writable, false);
|
| -assertEq(instanceProtoDesc.enumerable, false);
|
| -assertEq(instanceProtoDesc.configurable, false);
|
| +assertFalse(instanceProtoDesc.writable);
|
| +assertFalse(instanceProtoDesc.enumerable);
|
| +assertFalse(instanceProtoDesc.configurable);
|
|
|
| // 'WebAssembly.Instance.prototype' object
|
| let instanceProto = Instance.prototype;
|
| @@ -297,24 +297,24 @@ assertEq(Object.getPrototypeOf(exportingInstance), instanceProto);
|
| // 'WebAssembly.Instance' 'exports' data property
|
| let instanceExportsDesc = Object.getOwnPropertyDescriptor(exportingInstance, 'exports');
|
| assertEq(typeof instanceExportsDesc.value, "object");
|
| -assertEq(instanceExportsDesc.writable, true);
|
| -assertEq(instanceExportsDesc.enumerable, true);
|
| -assertEq(instanceExportsDesc.configurable, true);
|
| +assertTrue(instanceExportsDesc.writable);
|
| +assertTrue(instanceExportsDesc.enumerable);
|
| +assertTrue(instanceExportsDesc.configurable);
|
|
|
| // Exported WebAssembly functions
|
| let f = exportingInstance.exports.f;
|
| -assertEq(f instanceof Function, true);
|
| +assertTrue(f instanceof Function);
|
| assertEq(f.length, 0);
|
| -assertEq('name' in f, true);
|
| +assertTrue('name' in f);
|
| assertEq(Function.prototype.call.call(f), 42);
|
| assertErrorMessage(() => new f(), TypeError, /is not a constructor/);
|
|
|
| // 'WebAssembly.Memory' data property
|
| let memoryDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Memory');
|
| assertEq(typeof memoryDesc.value, "function");
|
| -assertEq(memoryDesc.writable, true);
|
| -assertEq(memoryDesc.enumerable, false);
|
| -assertEq(memoryDesc.configurable, true);
|
| +assertTrue(memoryDesc.writable);
|
| +assertFalse(memoryDesc.enumerable);
|
| +assertTrue(memoryDesc.configurable);
|
|
|
| // 'WebAssembly.Memory' constructor function
|
| let Memory = WebAssembly.Memory;
|
| @@ -329,15 +329,15 @@ assertErrorMessage(() => new Memory({initial:Math.pow(2,32)}), RangeError, /bad
|
| assertErrorMessage(() => new Memory({initial:1, maximum: Math.pow(2,32)/Math.pow(2,14) }), RangeError, /bad Memory maximum size/);
|
| assertErrorMessage(() => new Memory({initial:2, maximum:1 }), RangeError, /bad Memory maximum size/);
|
| assertErrorMessage(() => new Memory({maximum: -1 }), RangeError, /bad Memory maximum size/);
|
| -assertEq(new Memory({initial:1}) instanceof Memory, true);
|
| +assertTrue(new Memory({initial: 1}) instanceof Memory);
|
| assertEq(new Memory({initial:1.5}).buffer.byteLength, kPageSize);
|
|
|
| // 'WebAssembly.Memory.prototype' data property
|
| let memoryProtoDesc = Object.getOwnPropertyDescriptor(Memory, 'prototype');
|
| assertEq(typeof memoryProtoDesc.value, "object");
|
| -assertEq(memoryProtoDesc.writable, false);
|
| -assertEq(memoryProtoDesc.enumerable, false);
|
| -assertEq(memoryProtoDesc.configurable, false);
|
| +assertFalse(memoryProtoDesc.writable);
|
| +assertFalse(memoryProtoDesc.enumerable);
|
| +assertFalse(memoryProtoDesc.configurable);
|
|
|
| // 'WebAssembly.Memory.prototype' object
|
| let memoryProto = Memory.prototype;
|
| @@ -355,21 +355,21 @@ assertEq(Object.getPrototypeOf(mem1), memoryProto);
|
| let bufferDesc = Object.getOwnPropertyDescriptor(memoryProto, 'buffer');
|
| assertEq(typeof bufferDesc.get, "function");
|
| assertEq(bufferDesc.set, undefined);
|
| -assertEq(bufferDesc.enumerable, false);
|
| -assertEq(bufferDesc.configurable, true);
|
| +assertFalse(bufferDesc.enumerable);
|
| +assertTrue(bufferDesc.configurable);
|
|
|
| // 'WebAssembly.Memory.prototype.buffer' getter
|
| let bufferGetter = bufferDesc.get;
|
| assertErrorMessage(() => bufferGetter.call(), TypeError, /called on incompatible undefined/);
|
| assertErrorMessage(() => bufferGetter.call({}), TypeError, /called on incompatible Object/);
|
| -assertEq(bufferGetter.call(mem1) instanceof ArrayBuffer, true);
|
| +assertTrue(bufferGetter.call(mem1) instanceof ArrayBuffer);
|
| assertEq(bufferGetter.call(mem1).byteLength, kPageSize);
|
|
|
| // 'WebAssembly.Memory.prototype.grow' data property
|
| let memGrowDesc = Object.getOwnPropertyDescriptor(memoryProto, 'grow');
|
| assertEq(typeof memGrowDesc.value, "function");
|
| -assertEq(memGrowDesc.enumerable, false);
|
| -assertEq(memGrowDesc.configurable, true);
|
| +assertFalse(memGrowDesc.enumerable);
|
| +assertTrue(memGrowDesc.configurable);
|
|
|
| // 'WebAssembly.Memory.prototype.grow' method
|
|
|
| @@ -388,12 +388,12 @@ var buf = mem.buffer;
|
| assertEq(buf.byteLength, kPageSize);
|
| assertEq(mem.grow(0), 1);
|
| // TODO(gdeepti): Pending spec clarification
|
| -// assertEq(buf !== mem.buffer, true);
|
| +// assertTrue(buf !== mem.buffer);
|
| // assertEq(buf.byteLength, 0);
|
| buf = mem.buffer;
|
| assertEq(buf.byteLength, kPageSize);
|
| assertEq(mem.grow(1), 1);
|
| -// TODO(gdeepti): assertEq(buf !== mem.buffer, true);
|
| +// TODO(gdeepti): assertTrue(buf !== mem.buffer);
|
| // TODO(gdeepti): assertEq(buf.byteLength, 0);
|
| buf = mem.buffer;
|
| assertEq(buf.byteLength, 2 * kPageSize);
|
| @@ -403,9 +403,9 @@ assertEq(buf, mem.buffer);
|
| // 'WebAssembly.Table' data property
|
| let tableDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Table');
|
| assertEq(typeof tableDesc.value, "function");
|
| -assertEq(tableDesc.writable, true);
|
| -assertEq(tableDesc.enumerable, false);
|
| -assertEq(tableDesc.configurable, true);
|
| +assertTrue(tableDesc.writable);
|
| +assertFalse(tableDesc.enumerable);
|
| +assertTrue(tableDesc.configurable);
|
|
|
| // 'WebAssembly.Table' constructor function
|
| let Table = WebAssembly.Table;
|
| @@ -422,17 +422,19 @@ assertErrorMessage(() => new Table({initial:-1, element:"anyfunc"}), RangeError,
|
| assertErrorMessage(() => new Table({initial:Math.pow(2,32), element:"anyfunc"}), RangeError, /bad Table initial size/);
|
| assertErrorMessage(() => new Table({initial:2, maximum:1, element:"anyfunc"}), RangeError, /bad Table maximum size/);
|
| assertErrorMessage(() => new Table({initial:2, maximum:Math.pow(2,32), element:"anyfunc"}), RangeError, /bad Table maximum size/);
|
| -assertEq(new Table({initial:1, element:"anyfunc"}) instanceof Table, true);
|
| -assertEq(new Table({initial:1.5, element:"anyfunc"}) instanceof Table, true);
|
| -assertEq(new Table({initial:1, maximum:1.5, element:"anyfunc"}) instanceof Table, true);
|
| -//TODO:maximum assertEq(new Table({initial:1, maximum:Math.pow(2,32)-1, element:"anyfunc"}) instanceof Table, true);
|
| +assertTrue(new Table({initial: 1, element: 'anyfunc'}) instanceof Table);
|
| +assertTrue(new Table({initial: 1.5, element: 'anyfunc'}) instanceof Table);
|
| +assertTrue(
|
| + new Table({initial: 1, maximum: 1.5, element: 'anyfunc'}) instanceof Table);
|
| +// TODO:maximum assertTrue(new Table({initial:1, maximum:Math.pow(2,32)-1,
|
| +// element:"anyfunc"}) instanceof Table);
|
|
|
| // 'WebAssembly.Table.prototype' data property
|
| let tableProtoDesc = Object.getOwnPropertyDescriptor(Table, 'prototype');
|
| assertEq(typeof tableProtoDesc.value, "object");
|
| -assertEq(tableProtoDesc.writable, false);
|
| -assertEq(tableProtoDesc.enumerable, false);
|
| -assertEq(tableProtoDesc.configurable, false);
|
| +assertFalse(tableProtoDesc.writable);
|
| +assertFalse(tableProtoDesc.enumerable);
|
| +assertFalse(tableProtoDesc.configurable);
|
|
|
| // 'WebAssembly.Table.prototype' object
|
| let tableProto = Table.prototype;
|
| @@ -450,8 +452,8 @@ assertEq(Object.getPrototypeOf(tbl1), tableProto);
|
| let lengthDesc = Object.getOwnPropertyDescriptor(tableProto, 'length');
|
| assertEq(typeof lengthDesc.get, "function");
|
| assertEq(lengthDesc.set, undefined);
|
| -assertEq(lengthDesc.enumerable, false);
|
| -assertEq(lengthDesc.configurable, true);
|
| +assertFalse(lengthDesc.enumerable);
|
| +assertTrue(lengthDesc.configurable);
|
|
|
| // 'WebAssembly.Table.prototype.length' getter
|
| let lengthGetter = lengthDesc.get;
|
| @@ -464,8 +466,8 @@ assertEq(lengthGetter.call(tbl1), 2);
|
| // 'WebAssembly.Table.prototype.get' data property
|
| let getDesc = Object.getOwnPropertyDescriptor(tableProto, 'get');
|
| assertEq(typeof getDesc.value, "function");
|
| -assertEq(getDesc.enumerable, false);
|
| -assertEq(getDesc.configurable, true);
|
| +assertFalse(getDesc.enumerable);
|
| +assertTrue(getDesc.configurable);
|
|
|
| // 'WebAssembly.Table.prototype.get' method
|
| let get = getDesc.value;
|
| @@ -484,8 +486,8 @@ assertErrorMessage(() => get.call(tbl1, {valueOf() { throw new Error("hi") }}),
|
| // 'WebAssembly.Table.prototype.set' data property
|
| let setDesc = Object.getOwnPropertyDescriptor(tableProto, 'set');
|
| assertEq(typeof setDesc.value, "function");
|
| -assertEq(setDesc.enumerable, false);
|
| -assertEq(setDesc.configurable, true);
|
| +assertFalse(setDesc.enumerable);
|
| +assertTrue(setDesc.configurable);
|
|
|
| // 'WebAssembly.Table.prototype.set' method
|
| let set = setDesc.value;
|
| @@ -507,8 +509,8 @@ assertEq(set.call(tbl1, 1, null), undefined);
|
| // 'WebAssembly.Table.prototype.grow' data property
|
| let tblGrowDesc = Object.getOwnPropertyDescriptor(tableProto, 'grow');
|
| assertEq(typeof tblGrowDesc.value, "function");
|
| -assertEq(tblGrowDesc.enumerable, false);
|
| -assertEq(tblGrowDesc.configurable, true);
|
| +assertFalse(tblGrowDesc.enumerable);
|
| +assertTrue(tblGrowDesc.configurable);
|
|
|
| // 'WebAssembly.Table.prototype.grow' method
|
| let tblGrow = tblGrowDesc.value;
|
| @@ -528,17 +530,17 @@ assertErrorMessage(() => tbl.grow(1), Error, /failed to grow table/);
|
| // 'WebAssembly.validate' function
|
| assertErrorMessage(() => WebAssembly.validate(), TypeError);
|
| assertErrorMessage(() => WebAssembly.validate("hi"), TypeError);
|
| -assertEq(WebAssembly.validate(emptyModuleBinary), true);
|
| +assertTrue(WebAssembly.validate(emptyModuleBinary));
|
| // TODO: other ways for validate to return false.
|
| -assertEq(WebAssembly.validate(moduleBinaryImporting2Memories), false);
|
| -assertEq(WebAssembly.validate(moduleBinaryWithMemSectionAndMemImport), false);
|
| +assertFalse(WebAssembly.validate(moduleBinaryImporting2Memories));
|
| +assertFalse(WebAssembly.validate(moduleBinaryWithMemSectionAndMemImport));
|
|
|
| // 'WebAssembly.compile' data property
|
| let compileDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'compile');
|
| assertEq(typeof compileDesc.value, "function");
|
| -assertEq(compileDesc.writable, true);
|
| -assertEq(compileDesc.enumerable, false);
|
| -assertEq(compileDesc.configurable, true);
|
| +assertTrue(compileDesc.writable);
|
| +assertFalse(compileDesc.enumerable);
|
| +assertTrue(compileDesc.configurable);
|
|
|
| // 'WebAssembly.compile' function
|
| let compile = WebAssembly.compile;
|
| @@ -549,9 +551,9 @@ function assertCompileError(args, err, msg) {
|
| var error = null;
|
| compile(...args).catch(e => error = e);
|
| drainJobQueue();
|
| - assertEq(error instanceof err, true);
|
| - assertEq(Boolean(error.stack.match("js-api.js")), true);
|
| -//TODO assertEq(Boolean(error.message.match(msg)), true);
|
| + assertTrue(error instanceof err);
|
| + assertTrue(Boolean(error.stack.match('js-api.js')));
|
| + // TODO assertTrue(Boolean(error.message.match(msg)));
|
| }
|
| assertCompileError([], TypeError, /requires more than 0 arguments/);
|
| assertCompileError([undefined], TypeError, /first argument must be an ArrayBuffer or typed array object/);
|
| @@ -566,7 +568,7 @@ function assertCompileSuccess(bytes) {
|
| var module = null;
|
| compile(bytes).then(m => module = m);
|
| drainJobQueue();
|
| - assertEq(module instanceof Module, true);
|
| + assertTrue(module instanceof Module);
|
| }
|
| assertCompileSuccess(emptyModuleBinary);
|
| assertCompileSuccess(emptyModuleBinary.buffer);
|
| @@ -574,9 +576,9 @@ assertCompileSuccess(emptyModuleBinary.buffer);
|
| // 'WebAssembly.instantiate' data property
|
| let instantiateDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'instantiate');
|
| assertEq(typeof instantiateDesc.value, "function");
|
| -assertEq(instantiateDesc.writable, true);
|
| -assertEq(instantiateDesc.enumerable, false);
|
| -assertEq(instantiateDesc.configurable, true);
|
| +assertTrue(instantiateDesc.writable);
|
| +assertFalse(instantiateDesc.enumerable);
|
| +assertTrue(instantiateDesc.configurable);
|
|
|
| // 'WebAssembly.instantiate' function
|
| let instantiate = WebAssembly.instantiate;
|
| @@ -587,9 +589,9 @@ function assertInstantiateError(args, err, msg) {
|
| var error = null;
|
| instantiate(...args).catch(e => error = e);
|
| drainJobQueue();
|
| - assertEq(error instanceof err, true);
|
| - assertEq(Boolean(error.stack.match("js-api.js")), true);
|
| - //TODO assertEq(Boolean(error.message.match(msg)), true);
|
| + assertTrue(error instanceof err);
|
| + assertTrue(Boolean(error.stack.match('js-api.js')));
|
| + // TODO assertTrue(Boolean(error.message.match(msg)));
|
| }
|
| var scratch_memory = new WebAssembly.Memory(new ArrayBuffer(10));
|
| assertInstantiateError([], TypeError, /requires more than 0 arguments/);
|
| @@ -604,7 +606,6 @@ assertInstantiateError([importingModule], TypeError, /second argument must be an
|
| assertInstantiateError([importingModule, null], TypeError, /second argument must be an object/);
|
| assertInstantiateError([importingModuleBinary, null], TypeError, /second argument must be an object/);
|
| assertInstantiateError([emptyModule, null], TypeError, /first argument must be a BufferSource/);
|
| -assertInstantiateError([importingModule, {"":{f:()=>{}}}], TypeError, /first argument must be a BufferSource/);
|
| assertInstantiateError([importingModuleBinary, null], TypeError, /TODO: error messages?/);
|
| assertInstantiateError([importingModuleBinary, undefined], TypeError, /TODO: error messages?/);
|
| assertInstantiateError([importingModuleBinary, {}], LinkError, /TODO: error messages?/);
|
| @@ -616,14 +617,23 @@ assertInstantiateError([memoryImportingModuleBinary, {}], LinkError, /TODO: erro
|
| assertInstantiateError([memoryImportingModuleBinary, {"mod": {"my_memory": scratch_memory}}], LinkError, /TODO: error messages?/);
|
| assertInstantiateError([memoryImportingModuleBinary, {"": {"memory": scratch_memory}}], LinkError, /TODO: error messages?/);
|
|
|
| -function assertInstantiateSuccess(module_bytes, imports) {
|
| +function assertInstantiateSuccess(module_or_bytes, imports) {
|
| var result = null;
|
| - instantiate(module_bytes, imports).then(r => result = r).catch(e => print(e));
|
| + instantiate(module_or_bytes, imports)
|
| + .then(r => result = r)
|
| + .catch(e => print(e));
|
| drainJobQueue();
|
| - assertEq(result instanceof Instance, true);
|
| + if (module_or_bytes instanceof Module) {
|
| + assertTrue(result instanceof Instance);
|
| + } else {
|
| + assertTrue(result.module instanceof Module);
|
| + assertTrue(result.instance instanceof Instance);
|
| + }
|
| }
|
| +assertInstantiateSuccess(emptyModule);
|
| assertInstantiateSuccess(emptyModuleBinary);
|
| assertInstantiateSuccess(emptyModuleBinary.buffer);
|
| +assertInstantiateSuccess(importingModule, {'': {f: () => {}}});
|
| assertInstantiateSuccess(importingModuleBinary, {"":{f:()=>{}}});
|
| assertInstantiateSuccess(importingModuleBinary.buffer, {"":{f:()=>{}}});
|
| assertInstantiateSuccess(memoryImportingModuleBinary, {"": {"my_memory": scratch_memory}});
|
|
|