| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | Object.defineProperty(exports, '__esModule', { value: true });var _getLength = require('./_getLength.js');var isFunction = require('./isFunction.js');var allKeys = require('./allKeys.js');// Since the regular `Object.prototype.toString` type tests don't work for// some types in IE 11, we use a fingerprinting heuristic instead, based// on the methods. It's not great, but it's the best we got.// The fingerprint method lists are defined below.function ie11fingerprint(methods) {  var length = _getLength(methods);  return function(obj) {    if (obj == null) return false;    // `Map`, `WeakMap` and `Set` have no enumerable keys.    var keys = allKeys(obj);    if (_getLength(keys)) return false;    for (var i = 0; i < length; i++) {      if (!isFunction(obj[methods[i]])) return false;    }    // If we are testing against `WeakMap`, we need to ensure that    // `obj` doesn't have a `forEach` method in order to distinguish    // it from a regular `Map`.    return methods !== weakMapMethods || !isFunction(obj[forEachName]);  };}// In the interest of compact minification, we write// each string in the fingerprints only once.var forEachName = 'forEach',    hasName = 'has',    commonInit = ['clear', 'delete'],    mapTail = ['get', hasName, 'set'];// `Map`, `WeakMap` and `Set` each have slightly different// combinations of the above sublists.var mapMethods = commonInit.concat(forEachName, mapTail),    weakMapMethods = commonInit.concat(mapTail),    setMethods = ['add'].concat(commonInit, forEachName, hasName);exports.ie11fingerprint = ie11fingerprint;exports.mapMethods = mapMethods;exports.setMethods = setMethods;exports.weakMapMethods = weakMapMethods;
 |