code: function(range) {
      if (range.start > this.end || range.end < this.start) {
        return new Range(NaN, NaN);
      }
      return new Range(
        this.start > range.start ? this.start : range.start,
        this.end   < range.end   ? this.end   : range.end
      );
    }
docs: *
  @method intersect(range)
  @returns Range
  @short Returns a new range with the latest starting point as its start,
  and the earliest ending point as its end. If the two ranges do not
  intersect this will effectively produce an invalid range.
  
  @example
  
  oneToTen.intersect(fiveToTwenty) -> 5..10
  janToMay.intersect(marToAug)     -> Mar 1, xxxx..May 1, xxxx
  
  @param {Range} range
  
  *