artdaq_node_server  v1_00_07
 All Classes Namespaces Files Variables Pages
_getTag.js
1 var DataView = require('./_DataView'),
2  Map = require('./_Map'),
3  Promise = require('./_Promise'),
4  Set = require('./_Set'),
5  WeakMap = require('./_WeakMap'),
6  baseGetTag = require('./_baseGetTag'),
7  toSource = require('./_toSource');
8 
10 var mapTag = '[object Map]',
11  objectTag = '[object Object]',
12  promiseTag = '[object Promise]',
13  setTag = '[object Set]',
14  weakMapTag = '[object WeakMap]';
15 
16 var dataViewTag = '[object DataView]';
17 
19 var dataViewCtorString = toSource(DataView),
20  mapCtorString = toSource(Map),
21  promiseCtorString = toSource(Promise),
22  setCtorString = toSource(Set),
23  weakMapCtorString = toSource(WeakMap);
24 
32 var getTag = baseGetTag;
33 
34 // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
35 if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
36  (Map && getTag(new Map) != mapTag) ||
37  (Promise && getTag(Promise.resolve()) != promiseTag) ||
38  (Set && getTag(new Set) != setTag) ||
39  (WeakMap && getTag(new WeakMap) != weakMapTag)) {
40  getTag = function(value) {
41  var result = baseGetTag(value),
42  Ctor = result == objectTag ? value.constructor : undefined,
43  ctorString = Ctor ? toSource(Ctor) : '';
44 
45  if (ctorString) {
46  switch (ctorString) {
47  case dataViewCtorString: return dataViewTag;
48  case mapCtorString: return mapTag;
49  case promiseCtorString: return promiseTag;
50  case setCtorString: return setTag;
51  case weakMapCtorString: return weakMapTag;
52  }
53  }
54  return result;
55  };
56 }
57 
58 module.exports = getTag;