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