| var arrayPush = require('./_arrayPush'), | 
 |     baseFlatten = require('./_baseFlatten'), | 
 |     copyArray = require('./_copyArray'), | 
 |     isArray = require('./isArray'); | 
 |  | 
 | /** | 
 |  * Creates a new array concatenating `array` with any additional arrays | 
 |  * and/or values. | 
 |  * | 
 |  * @static | 
 |  * @memberOf _ | 
 |  * @since 4.0.0 | 
 |  * @category Array | 
 |  * @param {Array} array The array to concatenate. | 
 |  * @param {...*} [values] The values to concatenate. | 
 |  * @returns {Array} Returns the new concatenated array. | 
 |  * @example | 
 |  * | 
 |  * var array = [1]; | 
 |  * var other = _.concat(array, 2, [3], [[4]]); | 
 |  * | 
 |  * console.log(other); | 
 |  * // => [1, 2, 3, [4]] | 
 |  * | 
 |  * console.log(array); | 
 |  * // => [1] | 
 |  */ | 
 | function concat() { | 
 |   var length = arguments.length; | 
 |   if (!length) { | 
 |     return []; | 
 |   } | 
 |   var args = Array(length - 1), | 
 |       array = arguments[0], | 
 |       index = length; | 
 |  | 
 |   while (index--) { | 
 |     args[index - 1] = arguments[index]; | 
 |   } | 
 |   return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); | 
 | } | 
 |  | 
 | module.exports = concat; |