| //@ runBigIntEnabled |
| |
| function assert(a) { |
| if (!a) |
| throw new Error("Bad assertion"); |
| } |
| |
| let v = 10n; |
| assert(v.toString() === "10"); |
| assert(v.toString(2) === "1010"); |
| assert(v.toString(3) === "101"); |
| assert(v.toString(8) === "12"); |
| assert(v.toString(16) === "a"); |
| assert(v.toString(32) === "a"); |
| |
| v = 191561942608236107294793378393788647952342390272950271n; |
| assert(v.toString() === "191561942608236107294793378393788647952342390272950271"); |
| assert(v.toString(2) === "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"); |
| assert(v.toString(3) === "2002122121011101220102010210020102000210011100122221002112102021022221102202020101221000021200201121121100121121"); |
| assert(v.toString(8) === "77777777777777777777777777777777777777777777777777777777777"); |
| assert(v.toString(16) === "1ffffffffffffffffffffffffffffffffffffffffffff"); |
| assert(v.toString(32) === "3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"); |
| |
| v = -10n; |
| assert(v.toString() === "-10"); |
| assert(v.toString(2) === "-1010"); |
| assert(v.toString(3) === "-101"); |
| assert(v.toString(8) === "-12"); |
| assert(v.toString(16) === "-a"); |
| assert(v.toString(32) === "-a"); |
| |
| v = -191561942608236107294793378393788647952342390272950271n; |
| assert(v.toString() === "-191561942608236107294793378393788647952342390272950271"); |
| assert(v.toString(2) === "-111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"); |
| assert(v.toString(3) === "-2002122121011101220102010210020102000210011100122221002112102021022221102202020101221000021200201121121100121121"); |
| assert(v.toString(8) === "-77777777777777777777777777777777777777777777777777777777777"); |
| assert(v.toString(16) === "-1ffffffffffffffffffffffffffffffffffffffffffff"); |
| assert(v.toString(32) === "-3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"); |
| |
| // Invaid radix |
| |
| function testInvalidRadix(radix) { |
| try { |
| v.toString(radix); |
| assert(false); |
| } catch(e) { |
| assert(e instanceof RangeError); |
| } |
| } |
| |
| testInvalidRadix(-10); |
| testInvalidRadix(-1); |
| testInvalidRadix(0); |
| testInvalidRadix(1); |
| testInvalidRadix(37); |
| testInvalidRadix(4294967312); |
| |