     @variable?.tags.front = @tags.front
     for arg in @args when arg instanceof Splat
       return @compileSplat o
-    args = (arg.compile o, LVL_LIST for arg in @args).join ', '
+    args = (arg.compile o, LEVEL.LIST for arg in @args).join ', '
     if @isSuper
       @compileSuper args, o
     else
-      (if @isNew then 'new ' else '') + @variable.compile(o, LVL_ACCESS) + "(#{args})"
+      (if @isNew then 'new ' else '') + @variable.compile(o, LEVEL.ACCESS) + "(#{args})"
 
   # `super()` is converted into a call against the superclass's implementation
   # of the current function.

  compileNode: (o) ->
    @base.tags.front = @tags.front
    props = @properties
    code  = @base.compile o, if props.length then LVL_ACCESS else null
    code  = "(#{code})" if props[0] instanceof Accessor and @isSimpleNumber()
    (code += prop.compile o) for prop in props
    code

      @compileLoopTest o

  compileOrTest: (o) ->
    [sub, ref] = @object.cache o, LEVEL.OP
    [cmp, cnj] = if @negated then [' !== ', ' && '] else [' === ', ' || ']
    tests = for item, i in @array.base.objects
      (if i then ref else sub) + cmp + item.compile o
    tests = tests.join cnj
    if o.level < LEVEL.OP then tests else "(#{tests})"

  compileLoopTest: (o) ->
    [sub, ref] = @object.cache o, LEVEL.LIST
    code = utility('indexOf') + ".call(#{ @array.compile o }, #{ref}) " +
           if @negated then '< 0' else '>= 0'
    return code if sub is ref
    code = sub + ', ' + code
    if o.level < LEVEL.LIST then code else "(#{code})"

  toString: (idt) ->
    super idt, @constructor.name + if @negated then '!' else ''
