whole_func_string: function(start, len) {
  			if (_.isUndefined(start) || start === null)
  				return null;
  			
  			if (start instanceof Range)
  				return start;
  			
  			if (_.isObject(start) && 'start' in start && 'end' in start) {
  				len = start.end - start.start;
  				start = start.start;
  			}
  				
  			return new Range(start, len);
  		}
func_code_string: function(start, len) {
  			if (_.isUndefined(start) || start === null)
  				return null;
  			
  			if (start instanceof Range)
  				return start;
  			
  			if (_.isObject(start) && 'start' in start && 'end' in start) {
  				len = start.end - start.start;
  				start = start.start;
  			}
  				
  			return new Range(start, len);
  		}
func_documentation_string: Creates new range object instance
  @param {Object} start Range start or array with 'start' and 'end'
  as two first indexes or object with 'start' and 'end' properties
  @param {Number} len Range length or string to produce range from
  @returns {Range}
  @memberOf emmet.range