Use a light scrollbar for transparent web views in dark mode.
[WebKit-https.git] / JSTests / stress / big-int-out-of-memory-tests.js
1 //@ runDefault("--useBigInt=true", "--useDFGJIT=false")
2
3 function assert(a, message) {
4     if (!a)
5         throw new Error(message);
6 }
7
8 function lshift(y) {
9     let out = 1n;
10     for (let i = 0; i < y; i++) {
11         out *= 2n;
12     }
13
14     return out;
15 }
16
17 let a = lshift(16384 * 63);
18 for (let i = 0; i < 256; i++) {
19     a *= 18446744073709551615n;
20 }
21
22 try {
23     let b = a + 1n;
24     assert(false, "Should throw OutOfMemoryError, but executed without exception");
25 } catch(e) {
26     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
27 }
28
29 try {
30     let b = a - (-1n);
31     assert(false, "Should throw OutOfMemoryError, but executed without exception");
32 } catch(e) {
33     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
34 }
35
36 try {
37     let b = a * (-1n);
38     assert(false, "Should throw OutOfMemoryError, but executed without exception");
39 } catch(e) {
40     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
41 }
42
43 try {
44     let b = a / a;
45     assert(false, "Should throw OutOfMemoryError, but executed without exception");
46 } catch(e) {
47     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
48 }
49
50 try {
51     let b = -a & -1n;
52     assert(false, "Should throw OutOfMemoryError, but executed without exception");
53 } catch(e) {
54     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
55 }
56
57 try {
58     let b = a ^ -1n;
59     assert(false, "Should throw OutOfMemoryError, but executed without exception");
60 } catch(e) {
61     assert(e.message == "Out of memory", "Expected OutOfMemoryError, but got: " + e);
62 }
63