whole_func_string: function scheduleNextRecurrence(rule, job, prevDate, endDate) {
  
    prevDate = (prevDate instanceof CronDate) ? prevDate : new CronDate();
  
    var date = (rule instanceof RecurrenceRule) ? rule._nextInvocationDate(prevDate) : rule.next();
    if (date === null) {
      return null;
    }
  
    if ((endDate instanceof CronDate) && date.getTime() > endDate.getTime()) {
      return null;
    }
  
    var inv = new Invocation(job, date, rule, endDate);
    scheduleInvocation(inv);
  
    return inv;
  }
func_code_string: function scheduleNextRecurrence(rule, job, prevDate, endDate) {
  
    prevDate = (prevDate instanceof CronDate) ? prevDate : new CronDate();
  
    var date = (rule instanceof RecurrenceRule) ? rule._nextInvocationDate(prevDate) : rule.next();
    if (date === null) {
      return null;
    }
  
    if ((endDate instanceof CronDate) && date.getTime() > endDate.getTime()) {
      return null;
    }
  
    var inv = new Invocation(job, date, rule, endDate);
    scheduleInvocation(inv);
  
    return inv;
  }
func_documentation_string: /* Recurrence scheduler