docs: function generate(scale, min, max, capacity) {
  	var adapter = scale._adapter;
  	var options = scale.options;
  	var timeOpts = options.time;
  	var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);
  	var major = determineMajorUnit(minor);
  	var stepSize = valueOrDefault$c(timeOpts.stepSize, timeOpts.unitStepSize);
  	var weekday = minor === 'week' ? timeOpts.isoWeekday : false;
  	var majorTicksEnabled = options.ticks.major.enabled;
  	var interval = INTERVALS[minor];
  	var first = min;
  	var last = max;
  	var ticks = [];
  	var time;
  
  	if (!stepSize) {
  		stepSize = determineStepSize(min, max, minor, capacity);
  	}
  
  	// For 'week' unit, handle the first day of week option
  	if (weekday) {
  		first = +adapter.startOf(first, 'isoWeek', weekday);
  		last = +adapter.startOf(last, 'isoWeek', weekday);
  	}
  
  	// Align first/last ticks on unit
  	first = +adapter.startOf(first, weekday ? 'day' : minor);
  	last = +adapter.startOf(last, weekday ? 'day' : minor);
  
  	// Make sure that the last tick include max
  	if (last < max) {
  		last = +adapter.add(last, 1, minor);
  	}
  
  	time = first;
  
  	if (majorTicksEnabled && major && !weekday && !timeOpts.round) {
  		// Align the first tick on the previous `minor` unit aligned on the `major` unit:
  		// we first aligned time on the previous `major` unit then add the number of full
  		// stepSize there is between first and the previous major time.
  		time = +adapter.startOf(time, major);
  		time = +adapter.add(time, ~~((first - time) / (interval.size * stepSize)) * stepSize, minor);
  	}
  
  	for (; time < last; time = +adapter.add(time, stepSize, minor)) {
  		ticks.push(+time);
  	}
  
  	ticks.push(+time);
  
  	return ticks;
  }