[ESNext][BigInt] Implement support for "%" operation
[WebKit-https.git] / JSTests / stress / big-int-mod-wrapped-value.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 testDiv(x, y, z, message) {
11     assert.sameValue(x % y, z, message);
12 }
13
14 testDiv(Object(33n), 10n, 3n, "ToPrimitive: unbox object with internal slot");
15
16 let o = {
17     [Symbol.toPrimitive]: function() {
18         return 33n;
19     }
20 };
21 testDiv(o, 10n, 3n, "ToPrimitive: @@toPrimitive");
22
23 o = {
24     valueOf: function() {
25         return 33n;
26     }
27 };
28 testDiv(o, 10n, 3n, "ToPrimitive: valueOf");
29
30 o = {
31     toString: function() {
32         return 33n;
33     }
34 }
35 testDiv(o, 10n, 3n, "ToPrimitive: toString");
36