From c4a0f62eef5e2482cc2c1604ee295f28f32372c4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 10 Dec 2014 21:12:01 +1100 Subject: [PATCH] add global symbol registry to polyfill --- lib/6to5/polyfill.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/6to5/polyfill.js b/lib/6to5/polyfill.js index 9e98ba264a..e9f7342924 100644 --- a/lib/6to5/polyfill.js +++ b/lib/6to5/polyfill.js @@ -1,7 +1,7 @@ /* jshint newcap: false */ var ensureSymbol = function (key) { - Symbol[key] = Symbol[key] || Symbol(); + Symbol[key] = Symbol[key] || Symbol(key); }; var ensureProto = function (Constructor, key, val) { @@ -13,11 +13,25 @@ var ensureProto = function (Constructor, key, val) { if (typeof Symbol === "undefined") { require("es6-symbol/implement"); + + var globSymbols = {}; + + Symbol.for = function (key) { + return globSymbols[key] = globSymbols[key] || Symbol(key); + }; + + Symbol.keyFor = function (sym) { + return sym.__description__; + }; } require("es6-shim"); require("./transformation/transformers/es6-generators/runtime"); +ensureSymbol("species"); + +String.prototype.includes = String.prototype.includes || String.prototype.contains; + // Abstract references ensureSymbol("referenceGet");