Serenity Operating System
1try {
2 assert(2 ** 0 === 1);
3 assert(2 ** 1 === 2);
4 assert(2 ** 2 === 4);
5 assert(2 ** 3 === 8);
6 assert(2 ** -3 === 0.125);
7 assert(3 ** 2 === 9);
8 assert(0 ** 0 === 1);
9 assert(2 ** 3 ** 2 === 512);
10 assert(2 ** (3 ** 2) === 512);
11 assert((2 ** 3) ** 2 === 64);
12 assert("2" ** "3" === 8);
13 assert("" ** [] === 1);
14 assert([] ** null === 1);
15 assert(null ** null === 1);
16 assert(undefined ** null === 1);
17 assert(isNaN(NaN ** 2));
18 assert(isNaN(2 ** NaN));
19 assert(isNaN(undefined ** 2));
20 assert(isNaN(2 ** undefined));
21 assert(isNaN(null ** undefined));
22 assert(isNaN(2 ** "foo"));
23 assert(isNaN("foo" ** 2));
24
25 console.log("PASS");
26} catch (e) {
27 console.log("FAIL: " + e);
28}