| | |
| | | |
| | | var WellKnownSymbolsStore = shared('wks'); |
| | | var Symbol = global.Symbol; |
| | | var symbolFor = Symbol && Symbol['for']; |
| | | var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; |
| | | |
| | | module.exports = function (name) { |
| | | if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { |
| | | var description = 'Symbol.' + name; |
| | | if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { |
| | | WellKnownSymbolsStore[name] = Symbol[name]; |
| | | } else if (USE_SYMBOL_AS_UID && symbolFor) { |
| | | WellKnownSymbolsStore[name] = symbolFor(description); |
| | | } else { |
| | | WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); |
| | | WellKnownSymbolsStore[name] = createWellKnownSymbol(description); |
| | | } |
| | | } return WellKnownSymbolsStore[name]; |
| | | }; |