       node.body.body = node.body.body.concat([statement])
       delete node.update
 
-  consolidateCases: (node) ->
-    list = []
-    toConsolidate = []
-    for case_, i in node.cases
-      # .type .test .consequent
-      toConsolidate.push(case_.test) if case_.test
-      if case_.consequent.length > 0
-        if case_.test
-          case_.test = { type: 'CoffeeListExpression', expressions: toConsolidate }
-        toConsolidate = []
-        list.push case_
-
-    node.cases = list
-
 ###
 # injectComments():
 # Injects comment nodes into a node list.

      []

  ###
  # Removes `break` statements from consequents in a switch case.
  # (eg, `case x: a(); break;` gets break; removed)
  ###

  removeBreaksFromConsequents: (node) =>
    if node.test
      idx = node.consequent.length-1
      last = node.consequent[idx]
      if last?.type is 'BreakStatement'
        delete node.consequent[idx]
        node.consequent.length -= 1
      else if last?.type isnt 'ReturnStatement'
        @syntaxError node, "No break or return statement found in a case"

  ###
  # In a call expression, ensure that non-last function arguments get
  # parenthesized (eg, `setTimeout (-> x), 500`).
  ###

  popStack: (node) ->
    @block = @scopes.pop()

  ###*
  # syntaxError():
  # Throws a syntax error for the given `node`.
  #
  #     @syntaxError node, "Not supported"
  ###

  syntaxError: (node, description) ->
    err = buildError(
      lineNumber: node.loc?.start?.line,
      column: node.loc?.start?.column,
      description: description
    , @options.source, @options.filename)
    throw err

  ###
  # Consolidates empty cases into the next case.
  # (`case x: case y: z()` => `case x, y: z()`)
  ###

  consolidateCases: (node) ->
    list = []
    toConsolidate = []
    for kase, i in node.cases
      # .type .test .consequent
      toConsolidate.push(kase.test) if kase.test
      if kase.consequent.length > 0
        if kase.test
          kase.test = { type: 'CoffeeListExpression', expressions: toConsolidate }
        toConsolidate = []
        list.push kase

    node.cases = list
    node

  ###
  # Removes `break` statements from consequents in a switch case.
  # (eg, `case x: a(); break;` gets break; removed)
  ###

  removeBreaksFromConsequents: (node) ->
    if node.test
      idx = node.consequent.length-1
      last = node.consequent[idx]
      if last?.type is 'BreakStatement'
        delete node.consequent[idx]
        node.consequent.length -= 1
      else if last?.type isnt 'ReturnStatement'
        @syntaxError node, "No break or return statement found in a case"
      node

  ###
  # In an IIFE, ensure that the function expression is parenthesized (eg,
