summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-04-13 00:33:28 -0700
committerGitHub <noreply@github.com>2021-04-13 09:33:28 +0200
commite92c78a9ac0ce0f7a9b2a0fada0c2c2557c40ae2 (patch)
treef0c1b1020357ea975e4be94e995b599b72a37df7 /lib
parent4f5709e32648435ff253b056ac7066240c39d2b7 (diff)
downloadNim-e92c78a9ac0ce0f7a9b2a0fada0c2c2557c40ae2.tar.gz
add number literal jsbigints.big (#17707)
Diffstat (limited to 'lib')
-rw-r--r--lib/std/jsbigints.nim20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/std/jsbigints.nim b/lib/std/jsbigints.nim
index 96ba90649..27df8fdad 100644
--- a/lib/std/jsbigints.nim
+++ b/lib/std/jsbigints.nim
@@ -13,16 +13,22 @@ func big*(integer: SomeInteger): JsBigInt {.importjs: "BigInt(#)".} =
     doAssert 0b1111100111.big == 0o1747.big and 0o1747.big == 999.big
   when nimvm: doAssert false, "JsBigInt can not be used at compile-time nor static context" else: discard
 
-func big*(integer: cstring): JsBigInt {.importjs: "BigInt(#)".} =
+func `'big`*(num: cstring): JsBigInt {.importjs: "BigInt(#)".} =
   ## Constructor for `JsBigInt`.
   runnableExamples:
-    doAssert big"-1" == big"1" - big"2"
+    doAssert -1'big == 1'big - 2'big
     # supports decimal, binary, octal, hex:
-    doAssert big"12" == 12.big
-    doAssert big"0b101" == 0b101.big
-    doAssert big"0o701" == 0o701.big
-    doAssert big"0xdeadbeaf" == 0xdeadbeaf.big
-    doAssert big"0xffffffffffffffff" == (1.big shl 64.big) - 1.big
+    doAssert -12'big == big"-12"
+    doAssert 12'big == 12.big
+    doAssert 0b101'big == 0b101.big
+    doAssert 0o701'big == 0o701.big
+    doAssert 0xdeadbeaf'big == 0xdeadbeaf.big
+    doAssert 0xffffffffffffffff'big == (1'big shl 64'big) - 1'big
+    doAssert not compiles(static(12'big))
+  when nimvm: doAssert false, "JsBigInt can not be used at compile-time nor static context" else: discard
+
+func big*(integer: cstring): JsBigInt {.importjs: "BigInt(#)".} =
+  ## Alias for `'big`
   when nimvm: doAssert false, "JsBigInt can not be used at compile-time nor static context" else: discard
 
 func toCstring*(this: JsBigInt; radix: 2..36): cstring {.importjs: "#.toString(#)".} =