code: function lastNext(date, modifier, unit, base_date) {
  
  		var temp;
  
  		if (!unit) {
  			return date;
  		}
  
  		// Lowercase the unit
  		unit = unit.toLowerCase();
  
  		if (typeof modifier == 'string') {
  			switch (modifier) {
  				case 'next':
  					modifier = +1;
  					break;
  
  				case 'last':
  				case 'previous':
  					modifier = -1;
  					break;
  
  				case 'this':
  					modifier = 0;
  			}
  		}
  
  		// If it's a day of the week, go to that date
  		if (days[unit] != null) {
  			return lastNextDay(date, modifier, unit, base_date);
  		}
  
  		if (unit == 'month') {
  			// Get the current value
  			temp = date.getMonth();
  
  			date.setMonth(date.getMonth() + modifier);
  
  			// Catch going earlier than the previous month or over the next
  			if (temp == date.getMonth() || temp + 1 != date.getMonth()) {
  				date.setDate(0);
  			}
  		} else {
  			Blast.Bound.Date.add(date, modifier, unit);
  		}
  
  		return date;
  	}
docs: Perform a last/next unit change
  
  @author   Jelle De Loecker   <jelle@develry.be>
  @since    0.5.7
  @version  0.5.7
  
  @param    {Date}     date
  @param    {String}   modifier   -1 for last, +1 for next
  @param    {String}   day
  @param    {Date}     base_date
  
  @return   {Date}