22 lines
470 B
JavaScript
22 lines
470 B
JavaScript
function assert(v, e) {
|
|
if (v !== e)
|
|
throw new Error("Expected value: " + e + " but got: " + v)
|
|
}
|
|
|
|
function bigIntOperations(a, b) {
|
|
let c = a + b;
|
|
return c & 0b111111111n;
|
|
}
|
|
noInline(bigIntOperations);
|
|
|
|
for (let i = 0; i < 100000; i++) {
|
|
let out = bigIntOperations(0xffffffffffffffffffffffffffffffn, 0x1n);
|
|
assert(out, 0n)
|
|
}
|
|
|
|
for (let i = 0; i < 100000; i++) {
|
|
let out = bigIntOperations(0b111111n, 0b1n);
|
|
assert(out, 0b1000000n)
|
|
}
|
|
|