Revert "switch to core-js from es6-symbol and es6-shim"

This reverts commit 37b2e747d5.
This commit is contained in:
Sebastian McKenzie
2014-12-15 13:54:45 +11:00
parent ea5954121e
commit 1b16ff3a0b
2 changed files with 51 additions and 13 deletions

View File

@@ -1,16 +1,53 @@
/* jshint newcap: false, freeze: false */
require("core-js/shim");
require("./transformation/transformers/es6-generators/runtime");
var ensureSymbol = function (key) {
Symbol[key] = Symbol[key] || Symbol(key);
};
var ensureProto = function (Constructor, key, val) {
var proto = Constructor.prototype;
if (!proto[key]) {
Object.defineProperty(proto, key, {
value: 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");
ensureSymbol("hasInstance");
ensureSymbol("isConcatSpreadable");
ensureSymbol("isRegExp");
ensureSymbol("toPrimitive");
ensureSymbol("toStringTag");
ensureSymbol("unscopables");
// Abstract references
ensureSymbol("referenceGet");
ensureSymbol("referenceSet");
ensureSymbol("referenceDelete");
ensureProto(Function, Symbol.referenceGet, function () { return this; });
ensureProto(Map, Symbol.referenceGet, Map.prototype.get);
ensureProto(Map, Symbol.referenceSet, Map.prototype.set);
ensureProto(Map, Symbol.referenceDelete, Map.prototype.delete);
if (global.WeakMap) {
ensureProto(WeakMap, Symbol.referenceGet, WeakMap.prototype.get);
ensureProto(WeakMap, Symbol.referenceSet, WeakMap.prototype.set);
ensureProto(WeakMap, Symbol.referenceDelete, WeakMap.prototype.delete);
}