   # For VariableDeclarator with no initializers (`var a`), add `undefined` as the initializer.
   ###
 
-  addExplicitUndefinedInitializer: (node, parent, skip) ->
+  addExplicitUndefinedInitializer: (node) ->
     unless node.init?
       node.init = { type: 'Identifier', name: 'undefined' }
-      skip()
+      @skip()
     node
 
   ###

    depth = 0
    @estraverse().replace root,
      enter: (node, parent) ->
        depth += 1
        fn = self["#{node.type}"]
        res = (fn.apply(self, [ node, parent, (=> @skip()), (=> @break()) ]) if fn)
        self.onEnter?(node, depth, fn, res)
        res
      leave: (node, parent) ->
        fn = self["#{node.type}Exit"]
        res = (fn.apply(self, [ node, parent, (=> @skip()), (=> @break()) ]) if fn)
        self.onExit?(node, depth, fn, res)
        depth -= 1
        res
    root

  # onEnter: (node, depth, fn) ->
  #   console.log Array(depth+1).join("  "), node.type, (if fn then "*" else ""), dead

    @warnAboutLabeledStatements node, parent
  WithStatement: (node) ->
    @syntaxError node, "'with' is not supported in CoffeeScript"
  VariableDeclarator: (node) ->
    @addShadowingIfNeeded(node)
    @addExplicitUndefinedInitializer node

  ###
  # Remove `{type: 'EmptyStatement'}` from the body.
