| 'use strict'; | 
| var $ = require('../internals/export'); | 
| var hasOwn = require('../internals/has-own-property'); | 
| var isSymbol = require('../internals/is-symbol'); | 
| var tryToString = require('../internals/try-to-string'); | 
| var shared = require('../internals/shared'); | 
| var NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection'); | 
|   | 
| var SymbolToStringRegistry = shared('symbol-to-string-registry'); | 
|   | 
| // `Symbol.keyFor` method | 
| // https://tc39.es/ecma262/#sec-symbol.keyfor | 
| $({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { | 
|   keyFor: function keyFor(sym) { | 
|     if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); | 
|     if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; | 
|   } | 
| }); |