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