     obj ?=
       one: 1
 
-    ok obj.one is 1
+    eq obj.one, 1
 
     obj and=
       two: 2
 
-    ok not obj.one
-    ok obj.two is 2
-  )()
-
-)()
-
-
-## `is`,`isnt`,`==`,`!=`
+    eq obj.one, undefined
+    eq obj.two, 2
+  )()
+
+)()
+
+
+#### `is`,`isnt`,`==`,`!=`
 (->
 
   # `==` and `is` should be interchangeable.

)()


## `in`, `of`
(->

  # `in` should check if an array contains a value using `indexOf`

#### Operators

# binary (2-ary) math operators do not require spaces
(->
  a = 1
  b = -1
  eq a*-b, 1
  eq a*+b, -1
  eq a/-b, 1
  eq a/+b, -1
)()

# operators should respect new lines as spaced
(->
  a = 123 +
  456
  eq a, 579

  b = "1#{2}3" +
  "456"
  eq b, '123456'
)()

# multiple operators should space themselves
eq (+ +1), (- -1)

# bitwise operators
(->
  eq (10 &   3), 2
  eq (10 |   3), 11
  eq (10 ^   3), 9
  eq (10 <<  3), 80
  eq (10 >>  3), 1
  eq (10 >>> 3), 1

  num = 10; eq (num &=   3), 2
  num = 10; eq (num |=   3), 11
  num = 10; eq (num ^=   3), 9
  num = 10; eq (num <<=  3), 80
  num = 10; eq (num >>=  3), 1
  num = 10; eq (num >>>= 3), 1
)()

# `instanceof`
