25 lines
411 B
JavaScript
25 lines
411 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 a + c;
|
|
}
|
|
noInline(bigIntOperations);
|
|
|
|
c = 0;
|
|
let o = { valueOf: function () {
|
|
c++;
|
|
return 0b1111n;
|
|
}};
|
|
|
|
for (let i = 0; i < 100000; i++) {
|
|
let out = bigIntOperations(o, 0b1010n);
|
|
assert(out, 40n);
|
|
}
|
|
|
|
assert(c, 200000);
|
|
|