src/ramda-custom.js
function _slice(args, from, to) {
        switch (arguments.length) {
        case 1:
            return _slice(args, 0, args.length);
        case 2:
            return _slice(args, from, args.length);
        default:
            var list = [];
            var idx = 0;
            var len = Math.max(0, Math.min(args.length, to) - from);
            while (idx < len) {
                list[idx] = args[from + idx];
                idx += 1;
            }
            return list;
        }
    }
function _slice(args, from, to) {
        switch (arguments.length) {
        case 1:
            return _slice(args, 0, args.length);
        case 2:
            return _slice(args, from, args.length);
        default:
            var list = [];
            var idx = 0;
            var len = Math.max(0, Math.min(args.length, to) - from);
            while (idx < len) {
                list[idx] = args[from + idx];
                idx += 1;
            }
            return list;
        }
    }
function _slice ( args , from , to ) { switch ( arguments . length ) { case 1 : return _slice ( args , 0 , args . length ) ; case 2 : return _slice ( args , from , args . length ) ; default : var list = [ ] ; var idx = 0 ; var len = Math . max ( 0 , Math . min ( args . length , to ) - from ) ; while ( idx < len ) { list [ idx ] = args [ from + idx ] ; idx += 1 ; } return list ; } }
An optimized, private array `slice` implementation.

@private
@param {Arguments|Array} args The array or arguments object to consider.
@param {Number} [from=0] The array index to slice from, inclusive.
@param {Number} [to=args.length] The array index to slice to, exclusive.
@return {Array} A new, sliced array.
@example

_slice([1, 2, 3, 4, 5], 1, 3); //=> [2, 3]

var firstThreeArgs = function(a, b, c, d) {
return _slice(arguments, 0, 3);
};
firstThreeArgs(1, 2, 3, 4); //=> [1, 2, 3]
An optimized private array slice implementation .