//@ runBigIntEnabled | |
function assert(a, message) { | |
if (!a) | |
throw new Error(message); | |
} | |
function assertThrowRangeError(a, b, message) { | |
try { | |
let n = a << b; | |
assert(false, message + ": Should throw RangeError, but executed without exception"); | |
} catch (e) { | |
assert(e instanceof RangeError, message + ": expected RangeError, got: " + e); | |
} | |
} | |
let a = 1n << 64n; | |
assertThrowRangeError(1n, a, "Left shift by " + a); | |
a = 1n << 30n; | |
assertThrowRangeError(1n, a, "Left shift by " + a); | |