public static T Call <T>(this ScriptContext context, string /*!*/ functionName, NamingContext namingContext, Dictionary <string, object> callerLocalVariables, params object[] arguments) where T : class { PhpReference rf = context.Call(functionName, namingContext, callerLocalVariables, arguments); if (rf.Value == null) { return(null); } else { return(DuckTyping.Instance.ImplementDuckType <T>(rf.Value)); } }