aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/modules/es6.symbol.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/modules/es6.symbol.js')
-rw-r--r--node_modules/core-js/modules/es6.symbol.js17
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;