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');
10 var mapTag =
'[object Map]',
11 objectTag =
'[object Object]',
12 promiseTag =
'[object Promise]',
13 setTag =
'[object Set]',
14 weakMapTag =
'[object WeakMap]';
16 var dataViewTag =
'[object DataView]';
19 var dataViewCtorString = toSource(DataView),
20 mapCtorString = toSource(Map),
21 promiseCtorString = toSource(Promise),
22 setCtorString = toSource(Set),
23 weakMapCtorString = toSource(WeakMap);
32 var getTag = baseGetTag;
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) :
'';
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;
58 module.exports = getTag;