| 1234567891011121314151617181920212223242526272829303132333435 | 'use strict';var shared = require('../internals/shared');var getBuiltIn = require('../internals/get-built-in');var uncurryThis = require('../internals/function-uncurry-this');var isSymbol = require('../internals/is-symbol');var wellKnownSymbol = require('../internals/well-known-symbol');var Symbol = getBuiltIn('Symbol');var $isWellKnownSymbol = Symbol.isWellKnownSymbol;var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);var WellKnownSymbolsStore = shared('wks');for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {  // some old engines throws on access to some keys like `arguments` or `caller`  try {    var symbolKey = symbolKeys[i];    if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);  } catch (error) { /* empty */ }}// `Symbol.isWellKnownSymbol` method// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injectedmodule.exports = function isWellKnownSymbol(value) {  if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;  try {    var symbol = thisSymbolValue(value);    for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {      // eslint-disable-next-line eqeqeq -- polyfilled symbols case      if (WellKnownSymbolsStore[keys[j]] == symbol) return true;    }  } catch (error) { /* empty */ }  return false;};
 |