massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / internals / well-known-symbol.js
1 var global = require('../internals/global');
2 var shared = require('../internals/shared');
3 var hasOwn = require('../internals/has-own-property');
4 var uid = require('../internals/uid');
5 var NATIVE_SYMBOL = require('../internals/native-symbol');
6 var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
7
8 var WellKnownSymbolsStore = shared('wks');
9 var Symbol = global.Symbol;
10 var symbolFor = Symbol && Symbol['for'];
11 var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
12
13 module.exports = function (name) {
14   if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
15     var description = 'Symbol.' + name;
16     if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {
17       WellKnownSymbolsStore[name] = Symbol[name];
18     } else if (USE_SYMBOL_AS_UID && symbolFor) {
19       WellKnownSymbolsStore[name] = symbolFor(description);
20     } else {
21       WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
22     }
23   } return WellKnownSymbolsStore[name];
24 };