source: imaps-frontend/node_modules/core-js/internals/symbol-is-well-known.js

main
Last change on this file was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 2 weeks ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 1.6 KB
Line 
1'use strict';
2var shared = require('../internals/shared');
3var getBuiltIn = require('../internals/get-built-in');
4var uncurryThis = require('../internals/function-uncurry-this');
5var isSymbol = require('../internals/is-symbol');
6var wellKnownSymbol = require('../internals/well-known-symbol');
7
8var Symbol = getBuiltIn('Symbol');
9var $isWellKnownSymbol = Symbol.isWellKnownSymbol;
10var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');
11var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);
12var WellKnownSymbolsStore = shared('wks');
13
14for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {
15 // some old engines throws on access to some keys like `arguments` or `caller`
16 try {
17 var symbolKey = symbolKeys[i];
18 if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);
19 } catch (error) { /* empty */ }
20}
21
22// `Symbol.isWellKnownSymbol` method
23// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol
24// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected
25module.exports = function isWellKnownSymbol(value) {
26 if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;
27 try {
28 var symbol = thisSymbolValue(value);
29 for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {
30 // eslint-disable-next-line eqeqeq -- polyfilled symbols case
31 if (WellKnownSymbolsStore[keys[j]] == symbol) return true;
32 }
33 } catch (error) { /* empty */ }
34 return false;
35};
Note: See TracBrowser for help on using the repository browser.