diff options
Diffstat (limited to 'node_modules/core-js/modules/es6.symbol.js')
-rw-r--r-- | node_modules/core-js/modules/es6.symbol.js | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/node_modules/core-js/modules/es6.symbol.js b/node_modules/core-js/modules/es6.symbol.js index f27076e11..5bf7c4884 100644 --- a/node_modules/core-js/modules/es6.symbol.js +++ b/node_modules/core-js/modules/es6.symbol.js @@ -13,10 +13,10 @@ var uid = require('./_uid'); var wks = require('./_wks'); var wksExt = require('./_wks-ext'); var wksDefine = require('./_wks-define'); -var keyOf = require('./_keyof'); var enumKeys = require('./_enum-keys'); var isArray = require('./_is-array'); var anObject = require('./_an-object'); +var isObject = require('./_is-object'); var toIObject = require('./_to-iobject'); var toPrimitive = require('./_to-primitive'); var createDesc = require('./_property-desc'); @@ -177,9 +177,9 @@ $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key) { - if (isSymbol(key)) return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; }, useSetter: function () { setter = true; }, useSimple: function () { setter = false; } @@ -209,15 +209,14 @@ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { - if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); - replacer = args[1]; - if (typeof replacer == 'function') $replacer = replacer; - if ($replacer || !isArray(replacer)) replacer = function (key, value) { - if ($replacer) value = $replacer.call(this, key, value); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; |