heyujie
2021-05-24 4885600ecc369aa2e30a65de8dd7a410f13c34df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"use strict";
 
var d              = require("d")
  , validateSymbol = require("../../../validate-symbol");
 
var registry = Object.create(null);
 
module.exports = function (SymbolPolyfill) {
    return Object.defineProperties(SymbolPolyfill, {
        for: d(function (key) {
            if (registry[key]) return registry[key];
            return (registry[key] = SymbolPolyfill(String(key)));
        }),
        keyFor: d(function (symbol) {
            var key;
            validateSymbol(symbol);
            for (key in registry) {
                if (registry[key] === symbol) return key;
            }
            return undefined;
        })
    });
};