private object InvokeDelegate(Delegate del, object[] args)
{
if (del == null)
{
throw new ArgumentNullException("del");
}
object[] processedArgs = args;
if (_engineMode == JsEngineMode.Classic && processedArgs.Length > 0)
{
processedArgs = processedArgs.Skip(1).ToArray();
}
object result = del.DynamicInvoke(processedArgs);
return result;
}