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:
@@ -1,6 +1,6 @@
|
||||
io.write(123.abs) // expect: 123
|
||||
io.write(-123.abs) // expect: 123
|
||||
io.write(0.abs) // expect: 0
|
||||
io.write(-0.abs) // expect: 0
|
||||
io.write(-0.12.abs) // expect: 0.12
|
||||
io.write(12.34.abs) // expect: 12.34
|
||||
IO.write(123.abs) // expect: 123
|
||||
IO.write(-123.abs) // expect: 123
|
||||
IO.write(0.abs) // expect: 0
|
||||
IO.write(-0.abs) // expect: 0
|
||||
IO.write(-0.12.abs) // expect: 0.12
|
||||
IO.write(12.34.abs) // expect: 12.34
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
io.write(~0) // expect: 4294967295
|
||||
io.write(~1) // expect: 4294967294
|
||||
io.write(~23) // expect: 4294967272
|
||||
IO.write(~0) // expect: 4294967295
|
||||
IO.write(~1) // expect: 4294967294
|
||||
IO.write(~23) // expect: 4294967272
|
||||
|
||||
// Max u32 value.
|
||||
io.write(~4294967295) // expect: 0
|
||||
IO.write(~4294967295) // expect: 0
|
||||
|
||||
// Past max u32 value.
|
||||
io.write(~4294967296) // expect: 4294967295
|
||||
IO.write(~4294967296) // expect: 4294967295
|
||||
|
||||
// Negative numbers.
|
||||
io.write(~-1) // expect: 0
|
||||
io.write(~-123) // expect: 122
|
||||
io.write(~-4294967294) // expect: 4294967293
|
||||
io.write(~-4294967295) // expect: 4294967294
|
||||
io.write(~-4294967296) // expect: 4294967295
|
||||
IO.write(~-1) // expect: 0
|
||||
IO.write(~-123) // expect: 122
|
||||
IO.write(~-4294967294) // expect: 4294967293
|
||||
IO.write(~-4294967295) // expect: 4294967294
|
||||
IO.write(~-4294967296) // expect: 4294967295
|
||||
|
||||
// Floating point values.
|
||||
io.write(~1.23) // expect: 4294967294
|
||||
io.write(~0.00123) // expect: 4294967295
|
||||
io.write(~345.67) // expect: 4294966950
|
||||
io.write(~-12.34) // expect: 11
|
||||
IO.write(~1.23) // expect: 4294967294
|
||||
IO.write(~0.00123) // expect: 4294967295
|
||||
IO.write(~345.67) // expect: 4294966950
|
||||
IO.write(~-12.34) // expect: 11
|
||||
|
||||
+20
-20
@@ -1,27 +1,27 @@
|
||||
io.write(1 < 2) // expect: true
|
||||
io.write(2 < 2) // expect: false
|
||||
io.write(2 < 1) // expect: false
|
||||
IO.write(1 < 2) // expect: true
|
||||
IO.write(2 < 2) // expect: false
|
||||
IO.write(2 < 1) // expect: false
|
||||
|
||||
io.write(1 <= 2) // expect: true
|
||||
io.write(2 <= 2) // expect: true
|
||||
io.write(2 <= 1) // expect: false
|
||||
IO.write(1 <= 2) // expect: true
|
||||
IO.write(2 <= 2) // expect: true
|
||||
IO.write(2 <= 1) // expect: false
|
||||
|
||||
io.write(1 > 2) // expect: false
|
||||
io.write(2 > 2) // expect: false
|
||||
io.write(2 > 1) // expect: true
|
||||
IO.write(1 > 2) // expect: false
|
||||
IO.write(2 > 2) // expect: false
|
||||
IO.write(2 > 1) // expect: true
|
||||
|
||||
io.write(1 >= 2) // expect: false
|
||||
io.write(2 >= 2) // expect: true
|
||||
io.write(2 >= 1) // expect: true
|
||||
IO.write(1 >= 2) // expect: false
|
||||
IO.write(2 >= 2) // expect: true
|
||||
IO.write(2 >= 1) // expect: true
|
||||
|
||||
// Zero and negative zero compare the same.
|
||||
io.write(0 < -0) // expect: false
|
||||
io.write(-0 < 0) // expect: false
|
||||
io.write(0 > -0) // expect: false
|
||||
io.write(-0 > 0) // expect: false
|
||||
io.write(0 <= -0) // expect: true
|
||||
io.write(-0 <= 0) // expect: true
|
||||
io.write(0 >= -0) // expect: true
|
||||
io.write(-0 >= 0) // expect: true
|
||||
IO.write(0 < -0) // expect: false
|
||||
IO.write(-0 < 0) // expect: false
|
||||
IO.write(0 > -0) // expect: false
|
||||
IO.write(-0 > 0) // expect: false
|
||||
IO.write(0 <= -0) // expect: true
|
||||
IO.write(-0 <= 0) // expect: true
|
||||
IO.write(0 >= -0) // expect: true
|
||||
IO.write(-0 >= 0) // expect: true
|
||||
|
||||
// TODO: Wrong type for RHS.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
io.write(8 / 2) // expect: 4
|
||||
io.write(12.34 / -0.4) // expect: -30.85
|
||||
IO.write(8 / 2) // expect: 4
|
||||
IO.write(12.34 / -0.4) // expect: -30.85
|
||||
|
||||
// TODO: Unsupported RHS types.
|
||||
// TODO: Divide by zero.
|
||||
|
||||
+14
-14
@@ -1,19 +1,19 @@
|
||||
io.write(123 == 123) // expect: true
|
||||
io.write(123 == 124) // expect: false
|
||||
io.write(-3 == 3) // expect: false
|
||||
io.write(0 == -0) // expect: true
|
||||
IO.write(123 == 123) // expect: true
|
||||
IO.write(123 == 124) // expect: false
|
||||
IO.write(-3 == 3) // expect: false
|
||||
IO.write(0 == -0) // expect: true
|
||||
|
||||
// Not equal to other types.
|
||||
io.write(123 == "123") // expect: false
|
||||
io.write(1 == true) // expect: false
|
||||
io.write(0 == false) // expect: false
|
||||
IO.write(123 == "123") // expect: false
|
||||
IO.write(1 == true) // expect: false
|
||||
IO.write(0 == false) // expect: false
|
||||
|
||||
io.write(123 != 123) // expect: false
|
||||
io.write(123 != 124) // expect: true
|
||||
io.write(-3 != 3) // expect: true
|
||||
io.write(0 != -0) // expect: false
|
||||
IO.write(123 != 123) // expect: false
|
||||
IO.write(123 != 124) // expect: true
|
||||
IO.write(-3 != 3) // expect: true
|
||||
IO.write(0 != -0) // expect: false
|
||||
|
||||
// Not equal to other types.
|
||||
io.write(123 != "123") // expect: true
|
||||
io.write(1 != true) // expect: true
|
||||
io.write(0 != false) // expect: true
|
||||
IO.write(123 != "123") // expect: true
|
||||
IO.write(1 != true) // expect: true
|
||||
IO.write(0 != false) // expect: true
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
io.write(123) // expect: 123
|
||||
io.write(987654) // expect: 987654
|
||||
io.write(0) // expect: 0
|
||||
io.write(-0) // expect: -0
|
||||
IO.write(123) // expect: 123
|
||||
IO.write(987654) // expect: 987654
|
||||
IO.write(0) // expect: 0
|
||||
IO.write(-0) // expect: -0
|
||||
|
||||
io.write(123.456) // expect: 123.456
|
||||
io.write(-0.001) // expect: -0.001
|
||||
IO.write(123.456) // expect: 123.456
|
||||
IO.write(-0.001) // expect: -0.001
|
||||
|
||||
// TODO: Hex? Scientific notation?
|
||||
// TODO: Literals at and beyond numeric limits.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// Infix.
|
||||
io.write(5 - 3) // expect: 2
|
||||
io.write(3.1 - 0.24) // expect: 2.86
|
||||
io.write(3 - 2 - 1) // expect: 0
|
||||
IO.write(5 - 3) // expect: 2
|
||||
IO.write(3.1 - 0.24) // expect: 2.86
|
||||
IO.write(3 - 2 - 1) // expect: 0
|
||||
|
||||
// Unary negation.
|
||||
var a = 3
|
||||
io.write(-a) // expect: -3
|
||||
IO.write(-a) // expect: -3
|
||||
|
||||
// TODO: Unsupported RHS types.
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
io.write(5 % 3) // expect: 2
|
||||
io.write(10 % 5) // expect: 0
|
||||
io.write(-4 % 3) // expect: -1
|
||||
io.write(4 % -3) // expect: 1
|
||||
io.write(-4 % -3) // expect: -1
|
||||
io.write(-4.2 % 3.1) // expect: -1.1
|
||||
io.write(4.2 % -3.1) // expect: 1.1
|
||||
io.write(-4.2 % -3.1) // expect: -1.1
|
||||
IO.write(5 % 3) // expect: 2
|
||||
IO.write(10 % 5) // expect: 0
|
||||
IO.write(-4 % 3) // expect: -1
|
||||
IO.write(4 % -3) // expect: 1
|
||||
IO.write(-4 % -3) // expect: -1
|
||||
IO.write(-4.2 % 3.1) // expect: -1.1
|
||||
IO.write(4.2 % -3.1) // expect: 1.1
|
||||
IO.write(-4.2 % -3.1) // expect: -1.1
|
||||
|
||||
// Left associative.
|
||||
io.write(13 % 7 % 4) // expect: 2
|
||||
IO.write(13 % 7 % 4) // expect: 2
|
||||
|
||||
// TODO: Unsupported RHS types.
|
||||
// TODO: Error on mod by zero.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
io.write(5 * 3) // expect: 15
|
||||
io.write(12.34 * 0.3) // expect: 3.702
|
||||
IO.write(5 * 3) // expect: 15
|
||||
IO.write(12.34 * 0.3) // expect: 3.702
|
||||
|
||||
// TODO: Unsupported RHS types.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
io.write(1 + 2) // expect: 3
|
||||
io.write(12.34 + 0.13) // expect: 12.47
|
||||
io.write(3 + 5 + 2) // expect: 10
|
||||
IO.write(1 + 2) // expect: 3
|
||||
IO.write(12.34 + 0.13) // expect: 12.47
|
||||
IO.write(3 + 5 + 2) // expect: 10
|
||||
|
||||
// TODO: Unsupported RHS types.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
io.write(123.toString == "123") // expect: true
|
||||
io.write(-123.toString == "-123") // expect: true
|
||||
io.write(-0.toString == "-0") // expect: true
|
||||
io.write(12.34.toString == "12.34") // expect: true
|
||||
io.write(-0.0001.toString == "-0.0001") // expect: true
|
||||
IO.write(123.toString == "123") // expect: true
|
||||
IO.write(-123.toString == "-123") // expect: true
|
||||
IO.write(-0.toString == "-0") // expect: true
|
||||
IO.write(12.34.toString == "12.34") // expect: true
|
||||
IO.write(-0.0001.toString == "-0.0001") // expect: true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
io.write(123 is Num) // expect: true
|
||||
io.write(123 is Object) // expect: true
|
||||
io.write(123 is String) // expect: false
|
||||
io.write(123.type == Num) // expect: true
|
||||
IO.write(123 is Num) // expect: true
|
||||
IO.write(123 is Object) // expect: true
|
||||
IO.write(123 is String) // expect: false
|
||||
IO.write(123.type == Num) // expect: true
|
||||
|
||||
Reference in New Issue
Block a user