You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							756 B
						
					
					
				
			
		
		
	
	
							45 lines
						
					
					
						
							756 B
						
					
					
				/**
 | 
						|
 * Obliterator Range Function
 | 
						|
 * ===========================
 | 
						|
 *
 | 
						|
 * Function returning a range iterator.
 | 
						|
 */
 | 
						|
var Iterator = require('./iterator.js');
 | 
						|
 | 
						|
/**
 | 
						|
 * Range.
 | 
						|
 *
 | 
						|
 * @param  {number} start - Start.
 | 
						|
 * @param  {number} end   - End.
 | 
						|
 * @param  {number} step  - Step.
 | 
						|
 * @return {Iterator}
 | 
						|
 */
 | 
						|
module.exports = function range(start, end, step) {
 | 
						|
  if (arguments.length === 1) {
 | 
						|
    end = start;
 | 
						|
    start = 0;
 | 
						|
  }
 | 
						|
 | 
						|
  if (arguments.length < 3) step = 1;
 | 
						|
 | 
						|
  var i = start;
 | 
						|
 | 
						|
  var iterator = new Iterator(function () {
 | 
						|
    if (i < end) {
 | 
						|
      var value = i;
 | 
						|
 | 
						|
      i += step;
 | 
						|
 | 
						|
      return {value: value, done: false};
 | 
						|
    }
 | 
						|
 | 
						|
    return {done: true};
 | 
						|
  });
 | 
						|
 | 
						|
  iterator.start = start;
 | 
						|
  iterator.end = end;
 | 
						|
  iterator.step = step;
 | 
						|
 | 
						|
  return iterator;
 | 
						|
};
 |