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