public object Call(ArgPuller argf, int nargs) { var args = new List <object>(); if (nargs < 0) { nargs = parameterTypes.Count; } args.Clear(); if (needsContext) { args.Add(context); nargs--; } for (int i = 0; i < nargs; i++) { var arg = argf(); args.Add(arg is int && parameterTypes[i] == typeof(bool) ? Convert.ToBoolean(arg) : arg); } return(method.Invoke(argf(), args.ToArray())); }
object CallImportN(int n, ArgPuller arg, int nargs) { return(imports[n].Call(arg, nargs)); }