code: function (dataLabel, options, alignAttr, bBox, alignTo, isNew) {
  		var chart = this.chart,
  			align = options.align,
  			verticalAlign = options.verticalAlign,
  			off,
  			justified;
  
  		// Off left
  		off = alignAttr.x;
  		if (off < 0) {
  			if (align === 'right') {
  				options.align = 'left';
  			} else {
  				options.x = -off;
  			}
  			justified = true;
  		}
  
  		// Off right
  		off = alignAttr.x + bBox.width;
  		if (off > chart.plotWidth) {
  			if (align === 'left') {
  				options.align = 'right';
  			} else {
  				options.x = chart.plotWidth - off;
  			}
  			justified = true;
  		}
  
  		// Off top
  		off = alignAttr.y;
  		if (off < 0) {
  			if (verticalAlign === 'bottom') {
  				options.verticalAlign = 'top';
  			} else {
  				options.y = -off;
  			}
  			justified = true;
  		}
  
  		// Off bottom
  		off = alignAttr.y + bBox.height;
  		if (off > chart.plotHeight) {
  			if (verticalAlign === 'top') {
  				options.verticalAlign = 'bottom';
  			} else {
  				options.y = chart.plotHeight - off;
  			}
  			justified = true;
  		}
  		
  		if (justified) {
  			dataLabel.placed = !isNew;
  			dataLabel.align(options, null, alignTo);
  		}
  	}
docs: If data labels fall partly outside the plot area, align them back in, in a way that
  doesn't hide the point.