//@ runBigIntEnabled function assert(a, e) { if (a !== e) throw new Error("Expected: " + e + " but got: " + a); } function doesGCAdd(a) { let o = {}; let c = a + 1n; o.b = c; return o; } noInline(doesGCAdd); for (var i = 0; i < 10000; i++) { let o = doesGCAdd(3n); assert(o.b, 4n); } function doesGCSub(a) { let o = {}; let c = a - 1n; o.b = c; return o; } noInline(doesGCSub); for (var i = 0; i < 10000; i++) { let o = doesGCSub(3n); assert(o.b, 2n); } function doesGCDiv(a) { let o = {}; let c = a / 2n; o.b = c; return o; } noInline(doesGCDiv); for (var i = 0; i < 10000; i++) { let o = doesGCDiv(4n); assert(o.b, 2n); } function doesGCMul(a) { let o = {}; let c = a * 2n; o.b = c; return o; } noInline(doesGCMul); for (var i = 0; i < 10000; i++) { let o = doesGCMul(4n); assert(o.b, 8n); } function doesGCBitAnd(a) { let o = {}; let c = a & 0b11n; o.b = c; return o; } noInline(doesGCBitAnd); for (var i = 0; i < 10000; i++) { let o = doesGCBitAnd(0b1010n); assert(o.b, 0b10n); } function doesGCBitOr(a) { let o = {}; let c = a | 0b11n; o.b = c; return o; } noInline(doesGCBitOr); for (var i = 0; i < 10000; i++) { let o = doesGCBitOr(0b10n); assert(o.b, 0b11n); } function doesGCBitXor(a) { let o = {}; let c = a ^ 0b11n; o.b = c; return o; } noInline(doesGCBitXor); for (var i = 0; i < 10000; i++) { let o = doesGCBitXor(0b10n); assert(o.b, 0b1n); }