From 296cf9657cdf50141b6115a58fc38e3bc5aa0626 Mon Sep 17 00:00:00 2001 From: flywind <43030857+xflywind@users.noreply.github.com> Date: Fri, 29 Jan 2021 08:14:19 -0600 Subject: [PATCH] add lost functions (#16843) --- lib/std/jsbigints.nim | 8 ++++++++ tests/stdlib/tjsbigints.nim | 2 ++ 2 files changed, 10 insertions(+) diff --git a/lib/std/jsbigints.nim b/lib/std/jsbigints.nim index edef6844f7..b62528abd8 100644 --- a/lib/std/jsbigints.nim +++ b/lib/std/jsbigints.nim @@ -105,6 +105,14 @@ func `**`*(x, y: JsBigInt): JsBigInt {.importjs: "((#) $1 #)".} = # pending https://github.com/nim-lang/Nim/pull/15940, simplify to: # doAssertRaises: discard big"2" ** big"-1" # raises foreign `RangeError` +func `and`*(x, y: JsBigInt): JsBigInt {.importjs: "(# & #)".} = + runnableExamples: + doAssert (big"555" and big"2") == big"2" + +func `or`*(x, y: JsBigInt): JsBigInt {.importjs: "(# | #)".} = + runnableExamples: + doAssert (big"555" or big"2") == big"555" + func `xor`*(x, y: JsBigInt): JsBigInt {.importjs: "(# ^ #)".} = runnableExamples: doAssert (big"555" xor big"2") == big"553" diff --git a/tests/stdlib/tjsbigints.nim b/tests/stdlib/tjsbigints.nim index 764b03be9f..34c5ddfbfb 100644 --- a/tests/stdlib/tjsbigints.nim +++ b/tests/stdlib/tjsbigints.nim @@ -11,6 +11,8 @@ var big3: JsBigInt = big"2" doAssert big3 == big"2" doAssert (big3 xor big2) == big"664" +doAssert (big"555" and big"2") == big"2" +doAssert (big"555" or big"2") == big"555" doAssert (big1 mod big2) == big"613" doAssert -big1 == big"-2147483647" doAssert big1 div big2 == big"3224449"