| /** | |
|  * The base implementation of `_.slice` without an iteratee call guard. | |
|  * | |
|  * @private | |
|  * @param {Array} array The array to slice. | |
|  * @param {number} [start=0] The start position. | |
|  * @param {number} [end=array.length] The end position. | |
|  * @returns {Array} Returns the slice of `array`. | |
|  */ | |
| function baseSlice(array, start, end) { | |
|   var index = -1, | |
|       length = array.length; | |
| 
 | |
|   if (start < 0) { | |
|     start = -start > length ? 0 : (length + start); | |
|   } | |
|   end = end > length ? length : end; | |
|   if (end < 0) { | |
|     end += length; | |
|   } | |
|   length = start > end ? 0 : ((end - start) >>> 0); | |
|   start >>>= 0; | |
| 
 | |
|   var result = Array(length); | |
|   while (++index < length) { | |
|     result[index] = array[index + start]; | |
|   } | |
|   return result; | |
| } | |
| 
 | |
| module.exports = baseSlice;
 |