   constructor: (@condition, @body, @tags) ->
     @tags or= {}
     if @tags.invert
-      if @condition instanceof OpNode and @condition.isInvertable()
+      if @condition instanceof OpNode and @condition.isInvertible()
         @condition.invert()
       else
         @condition = new OpNode '!', new ParentheticalNode @condition

    '==': '==='
    '!=': '!=='

  # The map of invertable operators.
  INVERSIONS:
    '!==': '==='
    '===': '!=='

  isUnary: ->
    not @second

  isInvertible: ->
    (@operator in ['===', '!==']) and
      not (@first instanceof OpNode) and not (@second instanceof OpNode)


  isMutator: ->
    ends(@operator, '=') and not (@operator in ['===', '!=='])

  isChainable: ->
    include(@CHAINABLE, @operator)
