From bb5d9e17c07780ed80ca899e7f048d7616e08bb4 Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Fri, 20 Feb 2026 11:57:30 -0500 Subject: [PATCH] BigInt: Cover toString(radix) with big values --- .../BigInt/prototype/toString/radix-2-to-36.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/built-ins/BigInt/prototype/toString/radix-2-to-36.js b/test/built-ins/BigInt/prototype/toString/radix-2-to-36.js index ae93eae84ee..2b534f217d9 100644 --- a/test/built-ins/BigInt/prototype/toString/radix-2-to-36.js +++ b/test/built-ins/BigInt/prototype/toString/radix-2-to-36.js @@ -17,8 +17,23 @@ info: | features: [BigInt] ---*/ -for (let r = 2; r <= 36; r++) { +for (var r = 2; r <= 36; r++) { assert.sameValue((0n).toString(r), "0", "0, radix " + r); assert.sameValue((-1n).toString(r), "-1", "-1, radix " + r); assert.sameValue((1n).toString(r), "1", "1, radix " + r); } + +var numberOverflow = BigInt(Number.MAX_VALUE) + 1n; +var digits = "0123456789abcdefghijklmnopqrstuvwxyz"; +for (var r = 2; r <= 36; r++) { + var str = numberOverflow.toString(r); + + var val = 0n; + var R = BigInt(r); + for (var i = 0; i < str.length; i++) { + var x = digits.indexOf(str[i]); + assert(x >= 0); + val = val * R + BigInt(x); + } + assert.sameValue(val, numberOverflow, "Number.MAX_VALUE + 1 round-trip, radix " + r); +}