vendor/emmet.js
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);
		}
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);
		}
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