| /** |
| * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/> |
| * Build: `lodash modularize underscore exports="node" -o ./underscore/` |
| * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> |
| * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE> |
| * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors |
| * Available under MIT license <http://lodash.com/license> |
| */ |
| |
| /** |
| * Slices the `collection` from the `start` index up to, but not including, |
| * the `end` index. |
| * |
| * Note: This function is used instead of `Array#slice` to support node lists |
| * in IE < 9 and to ensure dense arrays are returned. |
| * |
| * @private |
| * @param {Array|Object|string} collection The collection to slice. |
| * @param {number} start The start index. |
| * @param {number} end The end index. |
| * @returns {Array} Returns the new array. |
| */ |
| function slice(array, start, end) { |
| start || (start = 0); |
| if (typeof end == 'undefined') { |
| end = array ? array.length : 0; |
| } |
| var index = -1, |
| length = end - start || 0, |
| result = Array(length < 0 ? 0 : length); |
| |
| while (++index < length) { |
| result[index] = array[start + index]; |
| } |
| return result; |
| } |
| |
| module.exports = slice; |