[ESNext][BigInt] Implement support for "%" operation
[WebKit-https.git] / JSTests / stress / big-int-mod-to-primitive.js
1 //@ runBigIntEnabled
2
3 function assert(a) {
4     if (!a)
5         throw new Error("Bad assertion");
6 }
7
8 assert.sameValue = function (input, expected, message) {
9     if (input !== expected)
10         throw new Error(message);
11 }
12
13 function testMod(x, y, z) {
14     assert.sameValue(x % y, z, x + " % " + y + " = " + z);
15 }
16
17 let o = {
18     [Symbol.toPrimitive]: function () { return 3000n; }
19 }
20
21 testMod(500000000000438n, o, 2438n);
22
23 o.valueOf = function () {
24     throw new Error("Should never execute it");
25 };
26
27 testMod(700000000000438n, o, 1438n);
28
29 o.toString = function () {
30     throw new Error("Should never execute it");
31 };
32
33 testMod(700000000000438n, o, 1438n);
34