[ESNext][BigInt] Implement support for "%" operation
[WebKit-https.git] / JSTests / stress / big-int-mod-jit.js
1 //@ runBigIntEnabled
2
3 let assert = {
4     sameValue: function(i, e, m) {
5         if (i !== e)
6             throw new Error(m);
7     }
8 }
9
10 function bigIntMod(x, y) {
11     return x % y;
12 }
13 noInline(bigIntMod);
14
15 for (let i = 0; i < 10000; i++) {
16     let r = bigIntMod(30n, 10n);
17     assert.sameValue(r, 0n, 30n + " % " + 10n + " = " + r);
18 }
19
20 function bigIntModFolding(x, y) {
21     let r = x % y;
22     return -r;
23 }
24 noInline(bigIntModFolding);
25
26 for (let i = 0; i < 10000; i++) {
27     let r = bigIntModFolding(10, 30);
28     assert.sameValue(r, -10, "-(" + 10 + " % " + 30 + ") = " + r);
29 }
30
31 let r = bigIntModFolding(10n, 30n);
32 assert.sameValue(r, -10n, "-(" + 10n + " % " + 30n + ") = " + r);
33