[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / big-int-mul-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 testMul(x, y, z) {
14     assert.sameValue(x * y, z, x + " * " + y + " = " + z);
15     assert.sameValue(y * x, z, y + " * " + x + " = " + z);
16 }
17
18 let o = {
19     [Symbol.toPrimitive]: function () { return 300000000000000n; }
20 }
21
22 testMul(500000000000438n, o, 150000000000131400000000000000n);
23
24 o.valueOf = function () {
25     throw new Error("Should never execute it");
26 };
27
28 testMul(700000000000438n, o, 210000000000131400000000000000n);
29
30 o.toString = function () {
31     throw new Error("Should never execute it");
32 };
33
34 testMul(700000000000438n, o, 210000000000131400000000000000n);
35