   BlockStatementExit: (node) ->
     @consolidateBodies node
     @removeEmptyStatementsFromBody node
-
-  consolidateBodies: (node) ->
-    if node._prebody?
-      node.body = node._prebody.concat(node.body)
-      delete node._prebody
   FunctionDeclaration: (node, parent) ->
     @pushStack node.body
     @removeUndefinedParameter node

            params: node.params
            body: node.body

      @block.body = [ statement ].concat(@block.body)
      @replace node, type: 'Identifier', name: node.id.name
    else
      node

    @addShadowingIfNeeded(node)
    @addExplicitUndefinedInitializer node, parent, skip

  consolidateBodies: (node) ->
    console.log 'consolidating prebody of', node.type
    if node._prebody
      console.log "√"
      node.body = node._prebody.concat(node.body)
      delete node._prebody

  moveDeclarationToTopOfScope: (node, paren) ->
    @parent._prebody ?= []
    @parent._prebody.unshift
