code: function (renew) {
  		var series = this,
  			chart = series.chart,
  			inverted = chart.inverted,
  			data = [],
  			plotSize = mathRound((inverted ? chart.plotTop : chart.plotLeft) + chart.plotSizeX),
  			low,
  			high,
  			tooltipPoints = []; // a lookup array for each pixel in the x dimension
  
  		// renew
  		if (renew) {
  			series.tooltipPoints = null;
  		}
  
  		// concat segments to overcome null values
  		each(series.segments, function (segment) {
  			data = data.concat(segment);
  		});
  
  		// loop the concatenated data and apply each point to all the closest
  		// pixel positions
  		if (series.xAxis && series.xAxis.reversed) {
  			data = data.reverse();//reverseArray(data);
  		}
  
  		each(data, function (point, i) {
  
  			low = data[i - 1] ? data[i - 1]._high + 1 : 0;
  			high = point._high = data[i + 1] ?
  				(mathFloor((point.plotX + (data[i + 1] ? data[i + 1].plotX : plotSize)) / 2)) :
  				plotSize;
  
  			while (low <= high) {
  				tooltipPoints[inverted ? plotSize - low++ : low++] = point;
  			}
  		});
  		series.tooltipPoints = tooltipPoints;
  	}
docs: Memoize tooltip texts and positions