bigint.js (850B)
1 // |jit-test| skip-if: !('BigInt' in this) 2 load(libdir + 'bytecode-cache.js'); 3 4 let test = ` 5 assertEq(2n**64n - 1n, BigInt("0xffffFFFFffffFFFF")); 6 7 // BigInt constants near INT64_MAX 8 assertEq(0x7fff_ffff_ffff_ffffn + 1n, BigInt("0x8000000000000000")); 9 assertEq(0x8000_0000_0000_0000n + 2n, BigInt("0x8000000000000002")); 10 11 // BigInt constants near INT64_MIN 12 assertEq(-0x7fff_ffff_ffff_ffffn - 1n, -BigInt("0x8000000000000000")); 13 assertEq(-0x8000_0000_0000_0000n - 2n, -BigInt("0x8000000000000002")); 14 assertEq(-0x8000_0000_0000_0001n - 3n, -BigInt("0x8000000000000004")); 15 16 // BigInt constants near UINT64_MAX 17 assertEq(0xffff_ffff_ffff_ffffn + 1n, BigInt("0x10000000000000000")); 18 assertEq(0x1_0000_0000_0000_0000n + 2n, BigInt("0x10000000000000002")); 19 `; 20 evalWithCache(test, { 21 assertEqBytecode: true, 22 assertEqResult : true 23 });