Serenity Operating System
at hosted 42 lines 1.1 kB view raw
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}