   class:     'ExistenceNode'
   children: ['expression']
 
-  constructor: (expression) ->
-    @expression = expression
+  constructor: (@expression) ->
 
   compileNode: (o) ->
     ExistenceNode.compileTest(o, @expression)

  class:     'OpNode'
  children: ['first', 'second']

  constructor: (operator, first, second, flip) ->
    @first    = first
    @second   = second
    @operator = @CONVERSIONS[operator] or operator
    @flip     = !!flip
    if @first instanceof ValueNode and @first.base instanceof ObjectNode
      @first = new ParentheticalNode @first

  class:     'CallNode'
  children: ['variable', 'args']

  constructor: (variable, @args) ->
    @isNew    = false
    @isSuper  = variable is 'super'
    @variable = if @isSuper then null else variable
    @args     = or []
    @compileSplatArguments = (o) ->
      SplatNode.compileSplattedArray.call(this, @args, o)

