00001 var baseSlice = require('./_baseSlice'), 00002 isIterateeCall = require('./_isIterateeCall'), 00003 toInteger = require('./toInteger'); 00004 00021 function slice(array, start, end) { 00022 var length = array == null ? 0 : array.length; 00023 if (!length) { 00024 return []; 00025 } 00026 if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { 00027 start = 0; 00028 end = length; 00029 } 00030 else { 00031 start = start == null ? 0 : toInteger(start); 00032 end = end === undefined ? length : toInteger(end); 00033 } 00034 return baseSlice(array, start, end); 00035 } 00036 00037 module.exports = slice;