       forPart     = "#{ivar} in #{sourcePart}"
       guardPart   = "\n#{idt1}if (!#{utility('hasProp')}.call(#{svar}, #{ivar})) continue;" unless @raw
     body          = body.compile merge o, indent: idt1, top: true
-    vars          = if range then name else "#{name}, #{ivar}"
+    vars          = if @range then name else "#{name}, #{ivar}"
     """
     #{resultPart}#{@tab}for (#{forPart}) {#{guardPart}
     #{varPart}#{body}

    if @guard
      body        = Expressions.wrap [new If @guard, body]
    if codeInBody
      body.unshift  new Literal "var #{name} = #{ivar}" if range
      body.unshift  new Literal "var #{namePart}" if namePart
      body.unshift  new Literal "var #{index} = #{ivar}" if index
      lastLine    = body.expressions.pop()

      body.push     lastLine
      o.indent    = @idt 1
      body        = Expressions.wrap [new Literal body.compile o]
      body.push     new Assign @index, new Literal ivar if index
      body.push     new Assign @name, new Literal nvar or ivar if name
    else
      varPart     = "#{idt1}#{namePart};\n" if namePart
      if forPart and name is ivar
