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

Conflicts:
	lib/6to5/polyfill.js
This commit is contained in:
Sebastian McKenzie
2014-12-15 14:00:41 +11:00
parent 3a261a5e05
commit 363b1631f5
4 changed files with 17 additions and 40 deletions

View File

@@ -1,12 +1,11 @@
# Polyfill
6to5 includes a polyfill that includes the
[regenerator runtime](https://github.com/facebook/regenerator/blob/master/runtime.js) and the
[es6-shim](https://github.com/paulmillr/es6-shim) and
[es6-symbol](https://github.com/medikoo/es6-symbol) polyfills.
6to5 includes a polyfill that includes a custom
[regenerator runtime](https://github.com/facebook/regenerator/blob/master/runtime.js) and
[core.js](https://github.com/zloirock/core-js).
This will emulate a full ES6 environment. This polyfill is automatically loaded
when using [6to5-node](usage.md#node).
when using [6to5-node](usage.md#node) and [6to5/register](usage.md#register-hook).
## Usage

View File

@@ -1,37 +1,16 @@
/* jshint newcap: false */
require("core-js/shim");
require("./transformation/transformers/es6-generators/runtime");
var ensureSymbol = function (key) {
Symbol[key] = Symbol[key] || Symbol();
};
var ensureProto = function (Constructor, key, val) {
var proto = Constructor.prototype;
proto[key] = proto[key] || val;
};
//
if (typeof Symbol === "undefined") {
require("es6-symbol/implement");
}
require("es6-shim");
require("./transformation/transformers/es6-generators/runtime");
// 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);
}
ensureSymbol("species");
ensureSymbol("hasInstance");
ensureSymbol("isConcatSpreadable");
ensureSymbol("isRegExp");
ensureSymbol("toPrimitive");
ensureSymbol("toStringTag");
ensureSymbol("unscopables");

View File

@@ -39,8 +39,7 @@
"ast-types": "0.6.5",
"chokidar": "0.11.1",
"commander": "2.5.0",
"es6-shim": "0.21.0",
"es6-symbol": "0.1.1",
"core-js": "^0.2.2",
"estraverse": "1.8.0",
"esutils": "1.1.6",
"fs-readdir-recursive": "0.1.0",

View File

@@ -7,6 +7,8 @@ var chai = require("chai");
var util = require("../lib/6to5/util");
var _ = require("lodash");
require("../lib/6to5/polyfill");
var run = function (task, done) {
var actual = task.actual;
var expect = task.expect;
@@ -27,8 +29,6 @@ var run = function (task, done) {
result = transform(execCode, getOpts(exec));
execCode = result.code;
require("../lib/6to5/polyfill");
try {
var fn = new Function("assert", "done", "genHelpers", execCode);
fn(assert, done, genHelpers);