blob: de63e7bf46d1e86839cc6e7cbdf3ae8d087ede6e [file] [log] [blame]
// META: global=window,dedicatedworker,jsshell
// META: script=/wasm/jsapi/assertions.js
test(() => {
assert_function_name(WebAssembly.Tag, "Tag", "WebAssembly.Tag");
}, "name");
test(() => {
assert_function_length(WebAssembly.Tag, 1, "WebAssembly.Tag");
}, "length");
test(() => {
assert_throws_js(TypeError, () => new WebAssembly.Tag());
}, "No arguments");
test(() => {
const argument = { parameters: [] };
assert_throws_js(TypeError, () => WebAssembly.Tag(argument));
}, "Calling");
test(() => {
const invalidArguments = [
undefined,
null,
false,
true,
"",
"test",
Symbol(),
1,
NaN,
{},
];
for (const invalidArgument of invalidArguments) {
assert_throws_js(
TypeError,
() => new WebAssembly.Tag(invalidArgument),
`new Tag(${format_value(invalidArgument)})`
);
}
}, "Invalid descriptor argument");
test(() => {
const invalidTypes = ["i16", "i128", "f16", "f128", "u32", "u64", "i32\0"];
for (const value of invalidTypes) {
const argument = { parameters: [value] };
assert_throws_js(TypeError, () => new WebAssembly.Tag(argument));
}
}, "Invalid type parameter");