package railo.transformer.bytecode.statement.udf;
import railo.transformer.bytecode.Body;
import railo.transformer.bytecode.BytecodeContext;
import railo.transformer.bytecode.BytecodeException;
import railo.transformer.bytecode.Page;
import railo.transformer.bytecode.Position;
import railo.transformer.bytecode.expression.Expression;
public final class Closure extends Function {
public Closure(Page page,Expression name, Expression returnType, Expression returnFormat, Expression output,Expression bufferOutput,
int access, Expression displayName, Expression description,Expression hint, Expression secureJson, Expression verifyClient,
Expression localMode,
long cachedWithin, boolean _abstract, boolean _final,
Body body, Position start,Position end) {
super(page,name, returnType, returnFormat, output,bufferOutput, access, displayName,description, hint, secureJson, verifyClient,
localMode,cachedWithin,_abstract,_final,body, start, end);
}
public Closure(Page page, String name, int access, String returnType, Body body,Position start,Position end) {
super(page,name, access, returnType, body, start, end);
}
public final void _writeOut(BytecodeContext bc, int pageType) throws BytecodeException{
//GeneratorAdapter adapter = bc.getAdapter();
////Page page = bc.getPage();
////if(page==null)page=ASMUtil.getAncestorPage(this);
//int index=page.addFunction(this);
/*if(pageType==PAGE_TYPE_INTERFACE) {
adapter.loadArg(0);
}
else if(pageType==PAGE_TYPE_COMPONENT) {
adapter.loadArg(1);
}
else {
adapter.loadArg(0);
adapter.invokeVirtual(Types.PAGE_CONTEXT, VARIABLE_SCOPE);
}
*/
createUDF(bc, valueIndex,true);
}
}