 
 
 callNew = (closure, thisArgument, args, env) ->
-	returnCandidate = callRaw closure, thisArgument, args, env
+	returnCandidate = callRaw closure, thisArgument, args
 
 	if returnCandidate?.return and returnCandidate.value.type == 'object'
 		returnCandidate.value

	args = exp.arguments.map (argument) ->
		ev argument, env

	callNew closure, thisArgument, args, env


Nodes['FunctionDeclaration'] = (exp, env) ->

	ev closure.body, newEnv


call = (closure, thisArgument, args) ->
	returnCandidate = callRaw closure, thisArgument, args

	if returnCandidate?.return
		returnCandidate.value
