[WebAssembly] Move type conversion code of JSToWasm return type to JS wasm wrapper
[WebKit-https.git] / JSTests / stress / big-int-to-string.js
1 //@ runBigIntEnabled
2
3 function assert(a) {
4     if (!a)
5         throw new Error("Bad assertion");
6 }
7
8 let v = 10n;
9 assert(v.toString() === "10");
10 assert(v.toString(2) === "1010");
11 assert(v.toString(3) === "101");
12 assert(v.toString(8) === "12");
13 assert(v.toString(16) === "a");
14 assert(v.toString(32) === "a");
15
16 v = 191561942608236107294793378393788647952342390272950271n;
17 assert(v.toString() === "191561942608236107294793378393788647952342390272950271");
18 assert(v.toString(2) === "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
19 assert(v.toString(3) === "2002122121011101220102010210020102000210011100122221002112102021022221102202020101221000021200201121121100121121");
20 assert(v.toString(8) === "77777777777777777777777777777777777777777777777777777777777");
21 assert(v.toString(16) === "1ffffffffffffffffffffffffffffffffffffffffffff");
22 assert(v.toString(32) === "3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv");
23
24 v = -10n;
25 assert(v.toString() === "-10");
26 assert(v.toString(2) === "-1010");
27 assert(v.toString(3) === "-101");
28 assert(v.toString(8) === "-12");
29 assert(v.toString(16) === "-a");
30 assert(v.toString(32) === "-a");
31
32 v = -191561942608236107294793378393788647952342390272950271n;
33 assert(v.toString() === "-191561942608236107294793378393788647952342390272950271");
34 assert(v.toString(2) === "-111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
35 assert(v.toString(3) === "-2002122121011101220102010210020102000210011100122221002112102021022221102202020101221000021200201121121100121121");
36 assert(v.toString(8) === "-77777777777777777777777777777777777777777777777777777777777");
37 assert(v.toString(16) === "-1ffffffffffffffffffffffffffffffffffffffffffff");
38 assert(v.toString(32) === "-3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv");
39
40 // Invaid radix
41
42 function testInvalidRadix(radix) {
43     try {
44         v.toString(radix);
45         assert(false);
46     } catch(e) {
47         assert(e instanceof RangeError);
48     }
49 }
50
51 testInvalidRadix(-10);
52 testInvalidRadix(-1);
53 testInvalidRadix(0);
54 testInvalidRadix(1);
55 testInvalidRadix(37);
56 testInvalidRadix(4294967312);
57