9bb9aee983af0c0e09758e772384f5eb3c46dc90
[WebKit-https.git] / JSTests / stress / big-int-div-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(2n), 1n, 2n, "ToPrimitive: unbox object with internal slot");
15
16 let o = {
17     [Symbol.toPrimitive]: function() {
18         return 2n;
19     }
20 };
21 testDiv(o, 1n, 2n, "ToPrimitive: @@toPrimitive");
22
23 o = {
24     valueOf: function() {
25         return 2n;
26     }
27 };
28 testDiv(o, 1n, 2n, "ToPrimitive: valueOf");
29
30 o = {
31     toString: function() {
32         return 2n;
33     }
34 }
35 testDiv(o, 1n, 2n, "ToPrimitive: toString");
36
37 o = {
38     valueOf: function() {
39         return 2n;
40     },
41     toString: function () {
42         throw new Error("Should never execute it");
43     }
44 };
45 testDiv(o, 1n, 2n, "ToPrimitive: valueOf");
46