33 lines
		
	
	
		
			843 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			843 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var toInteger = require('./toInteger'),
 | 
						|
    toLength = require('./toLength');
 | 
						|
 | 
						|
/**
 | 
						|
 * The base implementation of `_.fill` without an iteratee call guard.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Array} array The array to fill.
 | 
						|
 * @param {*} value The value to fill `array` with.
 | 
						|
 * @param {number} [start=0] The start position.
 | 
						|
 * @param {number} [end=array.length] The end position.
 | 
						|
 * @returns {Array} Returns `array`.
 | 
						|
 */
 | 
						|
function baseFill(array, value, start, end) {
 | 
						|
  var length = array.length;
 | 
						|
 | 
						|
  start = toInteger(start);
 | 
						|
  if (start < 0) {
 | 
						|
    start = -start > length ? 0 : (length + start);
 | 
						|
  }
 | 
						|
  end = (end === undefined || end > length) ? length : toInteger(end);
 | 
						|
  if (end < 0) {
 | 
						|
    end += length;
 | 
						|
  }
 | 
						|
  end = start > end ? 0 : toLength(end);
 | 
						|
  while (start < end) {
 | 
						|
    array[start++] = value;
 | 
						|
  }
 | 
						|
  return array;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = baseFill;
 |