| /** Used for built-in method references. */ | |
| var objectProto = Object.prototype; | |
| /** Used to check objects for own properties. */ | |
| var hasOwnProperty = objectProto.hasOwnProperty; | |
| /** | |
| * Initializes an array clone. | |
| * | |
| * @private | |
| * @param {Array} array The array to clone. | |
| * @returns {Array} Returns the initialized clone. | |
| */ | |
| function initCloneArray(array) { | |
| var length = array.length, | |
| result = new array.constructor(length); | |
| // Add properties assigned by `RegExp#exec`. | |
| if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { | |
| result.index = array.index; | |
| result.input = array.input; | |
| } | |
| return result; | |
| } | |
| module.exports = initCloneArray; | |