1/** Used for built-in method references. */ 2var objectProto = Object.prototype; 3 4/** Used to check objects for own properties. */ 5var 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 */ 14function 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 26module.exports = initCloneArray; 27