     else
       id = @walk(node.left.declarations[0].id)
 
-    if node.body.type is 'BlockStatement'
-      body = @indent => @walk(node.body)
-    else
-      body = @indent => [ @indent(), @walk(node.body) ]
+    body = @makeLoopBody(node.body)
 
     [ "for ", id, " of ", @walk(node.right), "\n", body ]
+
+  makeLoopBody: (body) ->
+    isBlock = body?.type is 'BlockStatement'
+    if not body or (isBlock and body.body.length is 0)
+      @indent => [ @indent(), "continue\n" ]
+    else if isBlock
+      @indent => @walk(body)
+    else
+      @indent => [ @indent(), @walk(body) ]
 
   CoffeeEscapedExpression: (node) ->
     [ '`', node.value, '`' ]

  parenthesizeObjectIfFunction: (node) ->
    if node.object.type is 'FunctionExpression'
      node.object._parenthesized = true

  consolidateCases: (node) ->
    list = []


  ForStatement: (node) ->
    # init, test, update, body
    @injectUpdateIntoBody(node)

    body = @makeLoopBody(node.body)

    init = if node.init
      [ @walk(node.init), "\n", @indent() ]
