Serenity Operating System
1try {
2 assert(+false === 0);
3 assert(-false === 0);
4 assert(+true === 1);
5 assert(-true === -1);
6 assert(+null === 0);
7 assert(-null === 0);
8 assert(+[] === 0);
9 assert(-[] === 0);
10 assert(+[[[[[]]]]] === 0);
11 assert(-[[[[[]]]]] === 0);
12 assert(+[[[[[42]]]]] === 42);
13 assert(-[[[[[42]]]]] === -42);
14 assert(+"" === 0);
15 assert(-"" === 0);
16 assert(+"42" === 42);
17 assert(-"42" === -42);
18 assert(+42 === 42);
19 assert(-42 === -42);
20 assert(+1.23 === 1.23);
21 assert(-1.23 === -1.23);
22 // FIXME: returns NaN
23 // assert(+"1.23" === 1.23)
24 // assert(-"1.23" === -1.23)
25
26 assert(isNaN(+undefined));
27 assert(isNaN(-undefined));
28 assert(isNaN(+{}));
29 assert(isNaN(-{}));
30 assert(isNaN(+{a: 1}));
31 assert(isNaN(-{a: 1}));
32 assert(isNaN(+[1, 2, 3]));
33 assert(isNaN(-[1, 2, 3]));
34 assert(isNaN(+[[[["foo"]]]]));
35 assert(isNaN(-[[[["foo"]]]]));
36 assert(isNaN(+"foo"));
37 assert(isNaN(-"foo"));
38
39 console.log("PASS");
40} catch (e) {
41 console.log("FAIL: " + e);
42}