code: function(slide_or_era) {
  		var dateCls = TL.DateUtil.SCALE_DATE_CLASSES[this.scale];
  		if(!(slide_or_era.start_date instanceof dateCls)) {
  			var start_date = slide_or_era.start_date;
  			slide_or_era.start_date = new dateCls(start_date);
  
  			// eliminate redundant end dates.
  			if (typeof(slide_or_era.end_date) != 'undefined' && !(slide_or_era.end_date instanceof dateCls)) {
  				var end_date = slide_or_era.end_date;
  				var equal = true;
  				for (property in start_date) {
  					equal = equal && (start_date[property] == end_date[property]);
  				}
  				if (equal) {
  					trace("End date same as start date is redundant; dropping end date");
  					delete slide_or_era.end_date;
  				} else {
  					slide_or_era.end_date = new dateCls(end_date);
  				}
  
  			}
  		}
  
  	}
docs: /*
  Given a thing which has a start_date and optionally an end_date, make sure that it is an instance
  of the correct date class (for human or cosmological scale). For slides, remove redundant end dates
  (people frequently configure an end date which is the same as the start date).