code: function ( startTime, endTime ) {
  
  		var times = this.times,
  			nKeys = times.length,
  			from = 0,
  			to = nKeys - 1;
  
  		while ( from !== nKeys && times[ from ] < startTime ) {
  
  			++ from;
  
  		}
  
  		while ( to !== - 1 && times[ to ] > endTime ) {
  
  			-- to;
  
  		}
  
  		++ to; // inclusive -> exclusive bound
  
  		if ( from !== 0 || to !== nKeys ) {
  
  			// empty tracks are forbidden, so keep at least one keyframe
  			if ( from >= to ) to = Math.max( to, 1 ), from = to - 1;
  
  			var stride = this.getValueSize();
  			this.times = AnimationUtils.arraySlice( times, from, to );
  			this.values = AnimationUtils.arraySlice( this.values, from * stride, to * stride );
  
  		}
  
  		return this;
  
  	}
docs: removes keyframes before and after animation without changing any values within the range [startTime, endTime]. IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values