package com.drawbridge.jsengine.jsobjects;
import com.drawbridge.jsengine.ast.Evaluator;
import com.drawbridge.jsengine.ast.Evaluator.EvaluatorException;
import com.drawbridge.jsengine.ast.FunctionConstructorEvaluator;
import com.drawbridge.utils.Utils;
public class JSFunction implements JSType
{
FunctionConstructorEvaluator mEvaluator;
Evaluator mLastCaller;
public JSFunction(FunctionConstructorEvaluator evaluator){
mEvaluator = evaluator;
}
public JSType executeFunction(Evaluator caller, JSType [] params) throws EvaluatorException, ExecutionException{
mLastCaller = caller;
//TODO deal with params at this point
for(int i = 0; i < params.length; i++){
if(params[i] != null)
Utils.out.println(params[i].toString());
else
Utils.out.println("NULL PARAM");
}
return mEvaluator.executeFunction(params);
}
@Override
public String toString(){
return "[" + mEvaluator.mIdentifier.getValue() + "]";
}
}