d88c85b102633777e98f93535f1c5957b7cfe889
[aai/esr-gui.git] /
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
11 module.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