| 123456789101112131415161718192021222324252627282930313233343536 | var apply = require('./_apply');/* Built-in method references for those with the same name as other `lodash` methods. */var nativeMax = Math.max;/** * A specialized version of `baseRest` which transforms the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @param {Function} transform The rest array transform. * @returns {Function} Returns the new function. */function overRest(func, start, transform) {  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);  return function() {    var args = arguments,        index = -1,        length = nativeMax(args.length - start, 0),        array = Array(length);    while (++index < length) {      array[index] = args[start + index];    }    index = -1;    var otherArgs = Array(start + 1);    while (++index < start) {      otherArgs[index] = args[index];    }    otherArgs[start] = transform(array);    return apply(func, this, otherArgs);  };}module.exports = overRest;
 |