refactor: convert IO from singleton instance to static class with metaclass native methods

Replace the global `io` singleton object with a static `IO` class, moving the `write` native from the instance to the metaclass. Update all benchmark, example, and test files to use `IO.write()` instead of `io.write()`.
This commit is contained in:
Bob Nystrom
2013-12-22 03:25:09 +00:00
parent 1a77a43fa0
commit 8bb1a94a25
119 changed files with 532 additions and 536 deletions
+6 -6
View File
@@ -1,8 +1,8 @@
io.write("".contains("")) // expect: true
io.write("anything".contains("")) // expect: true
io.write("something".contains("meth")) // expect: true
io.write("something".contains("some")) // expect: true
io.write("something".contains("ing")) // expect: true
io.write("something".contains("math")) // expect: false
IO.write("".contains("")) // expect: true
IO.write("anything".contains("")) // expect: true
IO.write("something".contains("meth")) // expect: true
IO.write("something".contains("some")) // expect: true
IO.write("something".contains("ing")) // expect: true
IO.write("something".contains("math")) // expect: false
// TODO: Passing non-string as argument.
+2 -2
View File
@@ -1,2 +1,2 @@
io.write("".count) // expect: 0
io.write("a string".count) // expect: 8
IO.write("".count) // expect: 0
IO.write("a string".count) // expect: 8
+14 -14
View File
@@ -1,19 +1,19 @@
io.write("" == "") // expect: true
io.write("abcd" == "abcd") // expect: true
io.write("abcd" == "d") // expect: false
io.write("e" == "abcd") // expect: false
io.write("" == "abcd") // expect: false
IO.write("" == "") // expect: true
IO.write("abcd" == "abcd") // expect: true
IO.write("abcd" == "d") // expect: false
IO.write("e" == "abcd") // expect: false
IO.write("" == "abcd") // expect: false
// Not equal to other types.
io.write("1" == 1) // expect: false
io.write("true" == true) // expect: false
IO.write("1" == 1) // expect: false
IO.write("true" == true) // expect: false
io.write("" != "") // expect: false
io.write("abcd" != "abcd") // expect: false
io.write("abcd" != "d") // expect: true
io.write("e" != "abcd") // expect: true
io.write("" != "abcd") // expect: true
IO.write("" != "") // expect: false
IO.write("abcd" != "abcd") // expect: false
IO.write("abcd" != "d") // expect: true
IO.write("e" != "abcd") // expect: true
IO.write("" != "abcd") // expect: true
// Not equal to other types.
io.write("1" != 1) // expect: true
io.write("true" != true) // expect: true
IO.write("1" != 1) // expect: true
IO.write("true" != true) // expect: true
+3 -3
View File
@@ -1,7 +1,7 @@
// Escape characters.
io.write("\"") // expect: "
io.write("\\") // expect: \
io.write("(\n)") // expect: (
IO.write("\"") // expect: "
IO.write("\\") // expect: \
IO.write("(\n)") // expect: (
// expect: )
// TODO: Non-printing escapes like \t.
+2 -2
View File
@@ -1,2 +1,2 @@
io.write("".count) // expect: 0
io.write("a string") // expect: a string
IO.write("".count) // expect: 0
IO.write("a string") // expect: a string
+12 -12
View File
@@ -1,24 +1,24 @@
// Returns characters (as strings).
io.write("abcd"[0]) // expect: a
io.write("abcd"[1]) // expect: b
io.write("abcd"[2]) // expect: c
io.write("abcd"[3]) // expect: d
IO.write("abcd"[0]) // expect: a
IO.write("abcd"[1]) // expect: b
IO.write("abcd"[2]) // expect: c
IO.write("abcd"[3]) // expect: d
// Allows indexing backwards from the end.
io.write("abcd"[-4]) // expect: a
io.write("abcd"[-3]) // expect: b
io.write("abcd"[-2]) // expect: c
io.write("abcd"[-1]) // expect: d
IO.write("abcd"[-4]) // expect: a
IO.write("abcd"[-3]) // expect: b
IO.write("abcd"[-2]) // expect: c
IO.write("abcd"[-1]) // expect: d
// Handle out of bounds.
// TODO: Should halt the fiber or raise an error somehow.
io.write("abcd"[4]) // expect: null
io.write("abcd"[-5]) // expect: null
IO.write("abcd"[4]) // expect: null
IO.write("abcd"[-5]) // expect: null
// Handle wrong argument type.
// TODO: Should halt the fiber or raise an error somehow.
io.write("abcd"[true]) // expect: null
IO.write("abcd"[true]) // expect: null
// Handle non-integer index.
// TODO: Should halt the fiber or raise an error somehow.
io.write("abcd"[1.5]) // expect: null
IO.write("abcd"[1.5]) // expect: null
+2 -2
View File
@@ -1,2 +1,2 @@
io.write("".toString == "") // expect: true
io.write("blah".toString == "blah") // expect: true
IO.write("".toString == "") // expect: true
IO.write("blah".toString == "blah") // expect: true
+4 -4
View File
@@ -1,4 +1,4 @@
io.write("s" is String) // expect: true
io.write("s" is Object) // expect: true
io.write("s" is Num) // expect: false
io.write("s".type == String) // expect: true
IO.write("s" is String) // expect: true
IO.write("s" is Object) // expect: true
IO.write("s" is Num) // expect: false
IO.write("s".type == String) // expect: true