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;