Automatic update from web-platform-tests Remove ShadowRealm test coverage This intentionally does not make infrastructure or documentation changes, but without implementer support all the ShadowRealm tests add significant noise. Once there is implementer support this can be reverted. -- wpt-commits: e4a4672e9e607fc2b28e7173b83ce4e38ef53071 wpt-pr: 59794
70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
// META: global=window,dedicatedworker,jsshell
|
|
// META: script=/wasm/jsapi/wasm-module-builder.js
|
|
// META: script=/wasm/jsapi/assertions.js
|
|
|
|
let emptyModuleBinary;
|
|
setup(() => {
|
|
emptyModuleBinary = new WasmModuleBuilder().toBuffer();
|
|
});
|
|
|
|
test(() => {
|
|
assert_function_name(WebAssembly.Module, "Module", "WebAssembly.Module");
|
|
}, "name");
|
|
|
|
test(() => {
|
|
assert_function_length(WebAssembly.Module, 1, "WebAssembly.Module");
|
|
}, "length");
|
|
|
|
test(() => {
|
|
assert_throws_js(TypeError, () => new WebAssembly.Module());
|
|
}, "No arguments");
|
|
|
|
test(() => {
|
|
assert_throws_js(TypeError, () => WebAssembly.Module(emptyModuleBinary));
|
|
}, "Calling");
|
|
|
|
test(() => {
|
|
const invalidArguments = [
|
|
undefined,
|
|
null,
|
|
true,
|
|
"test",
|
|
Symbol(),
|
|
7,
|
|
NaN,
|
|
{},
|
|
ArrayBuffer,
|
|
ArrayBuffer.prototype,
|
|
Array.from(emptyModuleBinary),
|
|
];
|
|
for (const argument of invalidArguments) {
|
|
assert_throws_js(TypeError, () => new WebAssembly.Module(argument),
|
|
`new Module(${format_value(argument)})`);
|
|
}
|
|
}, "Invalid arguments");
|
|
|
|
test(() => {
|
|
const buffer = new Uint8Array();
|
|
assert_throws_js(WebAssembly.CompileError, () => new WebAssembly.Module(buffer));
|
|
}, "Empty buffer");
|
|
|
|
test(() => {
|
|
const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0]));
|
|
assert_throws_js(WebAssembly.CompileError, () => new WebAssembly.Module(buffer));
|
|
}, "Invalid code");
|
|
|
|
test(() => {
|
|
const module = new WebAssembly.Module(emptyModuleBinary);
|
|
assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype);
|
|
}, "Prototype");
|
|
|
|
test(() => {
|
|
const module = new WebAssembly.Module(emptyModuleBinary);
|
|
assert_true(Object.isExtensible(module));
|
|
}, "Extensibility");
|
|
|
|
test(() => {
|
|
const module = new WebAssembly.Module(emptyModuleBinary, {});
|
|
assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype);
|
|
}, "Stray argument");
|