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;
							 |