     delimit(declarators, @indent())
 
   VariableDeclarator: (node) ->
-    init = if node.init?
-      @walk(node.init)
-    else
-      "undefined"
-
-    [ @walk(node.id), ' = ', init, "\n" ]
+    [ @walk(node.id), ' = ', @walk(node.init), "\n" ]
 
   FunctionExpression: (node, ctx) ->
-    # if node.id
-    #   @syntaxError node, "Named function expressions are not supported yet"
     params = @makeParams(node.params)
 
     expr = @indent (i) =>

  run: ->
    self = this
    @estraverse().replace @ast,
      enter: (node, parent) =>
        fn = self["#{node.type}"]
        if fn
          fn.apply self, [ node, parent, (=> @skip()), (=> @break()) ]


  ThrowStatement: (node) ->
    [ "throw ", @walk(node.argument), "\n" ]

  # Ternary operator (`a ? b : c`)
  ConditionalExpression: (node) ->
