     nvar          = scope.freeVariable 'i' if name and not range and codeInBody
     varPart       = ''
     guardPart     = ''
+    unstepPart    = ''
     body          = Expressions.wrap([@body])
     idt1          = @idt 1
     if range

      body.push     new Assign new Literal(name), new Literal nvar or ivar if name
    else
      varPart     = "#{idt1}#{namePart};\n" if namePart
    if @object
      forPart     = "#{ivar} in #{sourcePart}"
      guardPart   = "\n#{idt1}if (!#{utility('hasProp')}.call(#{svar}, #{ivar})) continue;" unless @raw  

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