artdaq_node_server  v1_00_08
 All Classes Namespaces Files Variables Pages
toArray.js
1 var Symbol = require('./_Symbol'),
2  copyArray = require('./_copyArray'),
3  getTag = require('./_getTag'),
4  isArrayLike = require('./isArrayLike'),
5  isString = require('./isString'),
6  iteratorToArray = require('./_iteratorToArray'),
7  mapToArray = require('./_mapToArray'),
8  setToArray = require('./_setToArray'),
9  stringToArray = require('./_stringToArray'),
10  values = require('./values');
11 
13 var mapTag = '[object Map]',
14  setTag = '[object Set]';
15 
17 var symIterator = Symbol ? Symbol.iterator : undefined;
18 
42 function toArray(value) {
43  if (!value) {
44  return [];
45  }
46  if (isArrayLike(value)) {
47  return isString(value) ? stringToArray(value) : copyArray(value);
48  }
49  if (symIterator && value[symIterator]) {
50  return iteratorToArray(value[symIterator]());
51  }
52  var tag = getTag(value),
53  func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
54 
55  return func(value);
56 }
57 
58 module.exports = toArray;