protected override object InnerInvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target,
object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters)
{
object[] processedArgs = TypeMappingHelpers.MapToHostType(args);
object result;
if (name == SpecialMemberName.Default && invokeAttr.HasFlag(BindingFlags.CreateInstance))
{
if (_engineMode != JsEngineMode.Classic && processedArgs.Length > 0)
{
processedArgs = processedArgs.Skip(1).ToArray();
}
result = Activator.CreateInstance(_type, processedArgs);
}
else
{
result = InvokeStandardMember(name, invokeAttr, binder, target,
processedArgs, modifiers, culture, namedParameters);
}
return TypeMappingHelpers.MapToScriptType(result, _engineMode);
}