 class Transformer extends TransformerBase
   Program: (node) ->
     @pushStack node
-    @fixScope node, node
+    new ScopeTransformer(node, @options).run(node)
   ProgramExit: (node) ->
     @popStack()
   BlockStatementExit: (node) ->

    throw buildError(err, source, options.filename)

  Transformer.run(ast, options)
  {code, map} = build(ast, options)
  {code, ast, map}

build = (ast, options) ->
  new Builder(ast, options).get()

###*
# TransformerBase:

  FunctionExpression: (node, parent) ->
    throw new Error("NamedFnExpr: Not supposed to happen") if node.id # fixScope should've gotten this case
    @pushStack node.body
    @removeUndefinedParameter node
    new ScopeTransformer(node, @options).run(node.body)
  FunctionExpressionExit: (node) ->
    @popStack()
  SwitchStatement: (node) ->
