arnaucube
arnaucube/thoughtsPublic Self-hosted repository
thoughts/node_modules/mongoose/node_modules/sliced/lib/sliced.js
node_modules/mongoose/node_modules/sliced/lib/sliced.jsRaw
 1
 2/**
 3 * An Array.prototype.slice.call(arguments) alternative
 4 *
 5 * @param {Object} args something with a length
 6 * @param {Number} slice
 7 * @param {Number} sliceEnd
 8 * @api public
 9 */
10
11module.exports = function (args, slice, sliceEnd) {
12  var ret = [];
13  var len = args.length;
14
15  if (0 === len) return ret;
16
17  var start = slice < 0
18    ? Math.max(0, slice + len)
19    : slice || 0;
20
21  if (sliceEnd !== undefined) {
22    len = sliceEnd < 0
23      ? sliceEnd + len
24      : sliceEnd
25  }
26
27  while (len-- > start) {
28    ret[len - start] = args[len];
29  }
30
31  return ret;
32}
33