[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / big-int-json-stringify.js
1 //@ runBigIntEnabled
2
3 function shouldBe(actual, expected)
4 {
5     if (actual !== expected)
6         throw new Error('bad value: ' + actual);
7 }
8 noInline(shouldBe);
9
10 function shouldThrow(func, errorMessage) {
11     var errorThrown = false;
12     var error = null;
13     try {
14         func();
15     } catch (e) {
16         errorThrown = true;
17         error = e;
18     }
19     if (!errorThrown)
20         throw new Error('not thrown');
21     if (String(error) !== errorMessage)
22         throw new Error(`bad error: ${String(error)}`);
23 }
24 noInline(shouldThrow);
25
26 shouldThrow(() => {
27     JSON.stringify(0n);
28 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
29
30 shouldThrow(() => {
31     JSON.stringify([0n]);
32 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
33
34 shouldThrow(() => {
35     JSON.stringify({hello:0n});
36 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
37
38 var bigIntObject = Object(0n);
39
40 shouldThrow(() => {
41     JSON.stringify(bigIntObject);
42 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
43
44 shouldThrow(() => {
45     JSON.stringify([bigIntObject]);
46 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
47
48 shouldThrow(() => {
49     JSON.stringify({hello:bigIntObject});
50 }, `TypeError: JSON.stringify cannot serialize BigInt.`);
51
52