internal ScriptFunction Construct(object[] args, VsaEngine engine)
{
ScriptFunction function;
StringBuilder builder = new StringBuilder("function anonymous(");
int index = 0;
int num2 = args.Length - 2;
while (index < num2)
{
builder.Append(Microsoft.JScript.Convert.ToString(args[index]));
builder.Append(", ");
index++;
}
if (args.Length > 1)
{
builder.Append(Microsoft.JScript.Convert.ToString(args[args.Length - 2]));
}
builder.Append(") {\n");
if (args.Length > 0)
{
builder.Append(Microsoft.JScript.Convert.ToString(args[args.Length - 1]));
}
builder.Append("\n}");
Context context = new Context(new DocumentContext("anonymous", engine), builder.ToString());
JSParser parser = new JSParser(context);
engine.PushScriptObject(((IActivationObject) engine.ScriptObjectStackTop()).GetGlobalScope());
try
{
function = (ScriptFunction) parser.ParseFunctionExpression().PartiallyEvaluate().Evaluate();
}
finally
{
engine.PopScriptObject();
}
return function;
}