   else
     parsed = esprima.parse (fs.readFileSync argv._[0]), loc: true
     # interp parsed, new Environment
-    await interp parsed, new Environment, defer(e, result)
-    throw e if e?
-    result
+    interp parsed, new Environment, (->), (e) ->
+      console.log "Error: ", e
+      process.exit 1

            env.insert node.left.name, original
          else if node.left.type is 'MemberExpression'
            object[property] = original
          return cont(null, original)
      when 'UpdateExpression'
        await interp node.argument, env, defer(e, original)
        return cont(e) if e?
        if node.operator is '++'
          newValue = original + 1
        else # '--'

    @prototype = @__ctor__.prototype

  apply: (_this, args) ->
    await this.applyCps _this, args, defer(result), errCont
    return result

  applyCps: (appliedThis, args, cont, errCont) ->
    calleeNode = this.__call__
    calleeNode.env.increaseScope()
    argsObject = {}
