Serenity Operating System
1try {
2 assert((true && true) === true);
3 assert((false && false) === false);
4 assert((true && false) === false);
5 assert((false && true) === false);
6 assert((false && (1 === 2)) === false);
7 assert((true && (1 === 2)) === false);
8 assert(("" && "") === "");
9 assert(("" && false) === "");
10 assert(("" && true) === "");
11 assert((false && "") === false);
12 assert((true && "") === "");
13 assert(("foo" && "bar") === "bar");
14 assert(("foo" && false) === false);
15 assert(("foo" && true) === true);
16 assert((false && "bar") === false);
17 assert((true && "bar") === "bar");
18 assert((null && true) === null);
19 assert((0 && false) === 0);
20 assert((0 && true) === 0);
21 assert((42 && false) === false);
22 assert((42 && true) === true);
23 assert((false && 0) === false);
24 assert((true && 0) === 0);
25 assert((false && 42) === false);
26 assert((true && 42) === 42);
27 assert(([] && false) === false);
28 assert(([] && true) === true);
29 assert((false && []) === false);
30 assert((true && []).length === 0);
31 assert((null && false) === null);
32 assert((null && true) === null);
33 assert((false && null) === false);
34 assert((true && null) === null);
35 assert((undefined && false) === undefined);
36 assert((undefined && true) === undefined);
37 assert((false && undefined) === false);
38 assert((true && undefined) === undefined);
39
40 assert((true || true) === true);
41 assert((false || false) === false);
42 assert((true || false) === true);
43 assert((false || true) === true);
44 assert((false || (1 === 2)) === false);
45 assert((true || (1 === 2)) === true);
46 assert(("" || "") === "");
47 assert(("" || false) === false);
48 assert(("" || true) === true);
49 assert((false || "") === "");
50 assert((true || "") === true);
51 assert(("foo" || "bar") === "foo");
52 assert(("foo" || false) === "foo");
53 assert(("foo" || true) === "foo");
54 assert((false || "bar") === "bar");
55 assert((true || "bar") === true);
56 assert((null || true) === true);
57 assert((0 || false) === false);
58 assert((0 || true) === true);
59 assert((42 || false) === 42);
60 assert((42 || true) === 42);
61 assert((false || 0) === 0);
62 assert((true || 0) === true);
63 assert((false || 42) === 42);
64 assert((true || 42) === true);
65 assert(([] || false).length === 0);
66 assert(([] || true).length === 0);
67 assert((false || []).length === 0);
68 assert((true || []) === true);
69 assert((null || false) === false);
70 assert((null || true) === true);
71 assert((false || null) === null);
72 assert((true || null) === true);
73 assert((undefined || false) === false);
74 assert((undefined || true) === true);
75 assert((false || undefined) === undefined);
76 assert((true || undefined) === true);
77
78 console.log("PASS");
79} catch (e) {
80 console.log("FAIL: " + e);
81}