Make null falsey.

This commit is contained in:
Bob Nystrom
2014-01-20 18:12:55 -08:00
parent 8c5ef693d0
commit 90d1ed6aa6
13 changed files with 118 additions and 58 deletions
+20
View File
@@ -0,0 +1,20 @@
// Note: These tests implicitly depend on ints being truthy.
// Also rely on IO.print() returning its argument.
// Return the first non-true argument.
IO.print(false && 1) // expect: false
IO.print(true && 1) // expect: 1
IO.print(1 && 2 && false) // expect: false
// Return the last argument if all are true.
IO.print(1 && true) // expect: true
IO.print(1 && 2 && 3) // expect: 3
// Short-circuit at the first false argument.
IO.print(true) && // expect: true
IO.print(false) && // expect: false
IO.print(false) // should not print
// Swallow a trailing newline.
IO.print(true &&
true) // expect: true
+8
View File
@@ -0,0 +1,8 @@
// False and null are false.
IO.print(false && "bad") // expect: false
IO.print(null && "bad") // expect: null
// Everything else is true.
IO.print(true && "ok") // expect: ok
IO.print(0 && "ok") // expect: ok
IO.print("" && "ok") // expect: ok
+20
View File
@@ -0,0 +1,20 @@
// Note: These tests implicitly depend on ints being truthy.
// Also rely on IO.print() returning its argument.
// Return the first true argument.
IO.print(1 || true) // expect: 1
IO.print(false || 1) // expect: 1
IO.print(false || false || true) // expect: true
// Return the last argument if all are false.
IO.print(false || false) // expect: false
IO.print(false || false || false) // expect: false
// Short-circuit at the first true argument.
IO.print(false) || // expect: false
IO.print(true) || // expect: true
IO.print(true) // should not print
// Swallow a trailing newline.
IO.print(true ||
true) // expect: true
+8
View File
@@ -0,0 +1,8 @@
// False and null are false.
IO.print(false || "ok") // expect: ok
IO.print(null || "ok") // expect: ok
// Everything else is true.
IO.print(true || "ok") // expect: true
IO.print(0 || "ok") // expect: 0
IO.print("s" || "ok") // expect: s