1 | /** Used for built-in method references. */
|
2 | var objectProto = Object.prototype;
|
3 |
|
4 | /** Used to check objects for own properties. */
|
5 | var hasOwnProperty = objectProto.hasOwnProperty;
|
6 |
|
7 | /**
|
8 | * Initializes an array clone.
|
9 | *
|
10 | * @private
|
11 | * @param {Array} array The array to clone.
|
12 | * @returns {Array} Returns the initialized clone.
|
13 | */
|
14 | function initCloneArray(array) {
|
15 | var length = array.length,
|
16 | result = new array.constructor(length);
|
17 |
|
18 | // Add properties assigned by `RegExp#exec`.
|
19 | if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
|
20 | result.index = array.index;
|
21 | result.input = array.input;
|
22 | }
|
23 | return result;
|
24 | }
|
25 |
|
26 | module.exports = initCloneArray;
|