| 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; |