code: function (options) {
  		var ret,
  			series = this.series,
  			pointArrayMap = series.pointArrayMap || ['y'],
  			valueCount = pointArrayMap.length,
  			firstItemType,
  			i = 0,
  			j = 0;
  
  		if (typeof options === 'number' || options === null) {
  			ret = { y: options };
  
  		} else if (isArray(options)) {
  			ret = {};
  			// with leading x value
  			if (options.length > valueCount) {
  				firstItemType = typeof options[0];
  				if (firstItemType === 'string') {
  					ret.name = options[0];
  				} else if (firstItemType === 'number') {
  					ret.x = options[0];
  				}
  				i++;
  			}
  			while (j < valueCount) {
  				ret[pointArrayMap[j++]] = options[i++];
  			}			
  		} else if (typeof options === 'object') {
  			ret = options;
  
  			// This is the fastest way to detect if there are individual point dataLabels that need 
  			// to be considered in drawDataLabels. These can only occur in object configs.
  			if (options.dataLabels) {
  				series._hasPointLabels = true;
  			}
  
  			// Same approach as above for markers
  			if (options.marker) {
  				series._hasPointMarkers = true;
  			}
  		}
  		return ret;
  	}
docs: Transform number or array configs into objects