var Symbol = require('./_Symbol'),
							 | 
						|
								    copyArray = require('./_copyArray'),
							 | 
						|
								    getTag = require('./_getTag'),
							 | 
						|
								    isArrayLike = require('./isArrayLike'),
							 | 
						|
								    isString = require('./isString'),
							 | 
						|
								    iteratorToArray = require('./_iteratorToArray'),
							 | 
						|
								    mapToArray = require('./_mapToArray'),
							 | 
						|
								    setToArray = require('./_setToArray'),
							 | 
						|
								    stringToArray = require('./_stringToArray'),
							 | 
						|
								    values = require('./values');
							 | 
						|
								
							 | 
						|
								/** `Object#toString` result references. */
							 | 
						|
								var mapTag = '[object Map]',
							 | 
						|
								    setTag = '[object Set]';
							 | 
						|
								
							 | 
						|
								/** Built-in value references. */
							 | 
						|
								var symIterator = Symbol ? Symbol.iterator : undefined;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * Converts `value` to an array.
							 | 
						|
								 *
							 | 
						|
								 * @static
							 | 
						|
								 * @since 0.1.0
							 | 
						|
								 * @memberOf _
							 | 
						|
								 * @category Lang
							 | 
						|
								 * @param {*} value The value to convert.
							 | 
						|
								 * @returns {Array} Returns the converted array.
							 | 
						|
								 * @example
							 | 
						|
								 *
							 | 
						|
								 * _.toArray({ 'a': 1, 'b': 2 });
							 | 
						|
								 * // => [1, 2]
							 | 
						|
								 *
							 | 
						|
								 * _.toArray('abc');
							 | 
						|
								 * // => ['a', 'b', 'c']
							 | 
						|
								 *
							 | 
						|
								 * _.toArray(1);
							 | 
						|
								 * // => []
							 | 
						|
								 *
							 | 
						|
								 * _.toArray(null);
							 | 
						|
								 * // => []
							 | 
						|
								 */
							 | 
						|
								function toArray(value) {
							 | 
						|
								  if (!value) {
							 | 
						|
								    return [];
							 | 
						|
								  }
							 | 
						|
								  if (isArrayLike(value)) {
							 | 
						|
								    return isString(value) ? stringToArray(value) : copyArray(value);
							 | 
						|
								  }
							 | 
						|
								  if (symIterator && value[symIterator]) {
							 | 
						|
								    return iteratorToArray(value[symIterator]());
							 | 
						|
								  }
							 | 
						|
								  var tag = getTag(value),
							 | 
						|
								      func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
							 | 
						|
								
							 | 
						|
								  return func(value);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								module.exports = toArray;
							 |