protected override object InnerCallFunction(string functionName, params object[] args) { object result; int argumentCount = args.Length; var processedArgs = new object[argumentCount]; if (argumentCount > 0) { for (int argumentIndex = 0; argumentIndex < argumentCount; argumentIndex++) { processedArgs[argumentIndex] = MapToMsieType(args[argumentIndex]); } } try { result = _jsEngine.CallFunction(functionName, processedArgs); } catch (OriginalJsRuntimeException e) { throw ConvertMsieJsRuntimeExceptionToJsRuntimeException(e); } result = MapToHostType(result); return(result); }