1// META: global=window,worker
2
3const invalidArguments = [
4  [undefined],
5  [null],
6  [true],
7  ["test"],
8  [Symbol()],
9  [0],
10  [0.1],
11  [NaN],
12  [{}, "Empty object"],
13  [Response, "Response interface object"],
14  [Response.prototype, "Response interface prototype object"],
15];
16
17for (const method of ["compileStreaming", "instantiateStreaming"]) {
18  for (const [argument, name = format_value(argument)] of invalidArguments) {
19    promise_test(t => {
20      return promise_rejects_js(t, TypeError, WebAssembly[method](argument));
21    }, `${method}: ${name}`);
22
23    promise_test(t => {
24      const promise = Promise.resolve(argument);
25      return promise_rejects_js(t, TypeError, WebAssembly[method](argument));
26    }, `${method}: ${name} in a promise`);
27  }
28}
29