logical-expressions-basic.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. try {
  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. assert((true || true) === true);
  40. assert((false || false) === false);
  41. assert((true || false) === true);
  42. assert((false || true) === true);
  43. assert((false || (1 === 2)) === false);
  44. assert((true || (1 === 2)) === true);
  45. assert(("" || "") === "");
  46. assert(("" || false) === false);
  47. assert(("" || true) === true);
  48. assert((false || "") === "");
  49. assert((true || "") === true);
  50. assert(("foo" || "bar") === "foo");
  51. assert(("foo" || false) === "foo");
  52. assert(("foo" || true) === "foo");
  53. assert((false || "bar") === "bar");
  54. assert((true || "bar") === true);
  55. assert((null || true) === true);
  56. assert((0 || false) === false);
  57. assert((0 || true) === true);
  58. assert((42 || false) === 42);
  59. assert((42 || true) === 42);
  60. assert((false || 0) === 0);
  61. assert((true || 0) === true);
  62. assert((false || 42) === 42);
  63. assert((true || 42) === true);
  64. assert(([] || false).length === 0);
  65. assert(([] || true).length === 0);
  66. assert((false || []).length === 0);
  67. assert((true || []) === true);
  68. assert((null || false) === false);
  69. assert((null || true) === true);
  70. assert((false || null) === null);
  71. assert((true || null) === true);
  72. assert((undefined || false) === false);
  73. assert((undefined || true) === true);
  74. assert((false || undefined) === undefined);
  75. assert((true || undefined) === true);
  76. console.log("PASS");
  77. } catch (e) {
  78. console.log("FAIL: " + e);
  79. }