26 lines
819 B
JavaScript
26 lines
819 B
JavaScript
function shouldThrow(func, errorMessage) {
|
|
var errorThrown = false;
|
|
var error = null;
|
|
try {
|
|
func();
|
|
} catch (e) {
|
|
errorThrown = true;
|
|
error = e;
|
|
}
|
|
if (!errorThrown)
|
|
throw new Error('not thrown');
|
|
if (String(error) !== errorMessage)
|
|
throw new Error(`bad error: ${String(error)}`);
|
|
}
|
|
|
|
let i64a = new BigInt64Array(new SharedArrayBuffer(128));
|
|
let u64a = new BigUint64Array(new SharedArrayBuffer(128));
|
|
|
|
shouldThrow(() => {
|
|
Atomics.wait(u64a, 0, 0n);
|
|
}, `TypeError: Typed array argument must be an Int32Array or BigInt64Array.`);
|
|
|
|
shouldThrow(() => {
|
|
Atomics.load(new Float64Array(8), 0);
|
|
}, `TypeError: Typed array argument must be an Int8Array, Int16Array, Int32Array, Uint8Array, Uint16Array, Uint32Array, BigInt64Array, or BigUint64Array.`);
|