fix remaining babel helper issues
This commit is contained in:
parent
ca1ca2055d
commit
fe5aff09a4
@ -74,9 +74,9 @@ function buildVar(namespace, builder) {
|
||||
|
||||
function buildHelpers(body, namespace, whitelist) {
|
||||
each(helpers.list, function (name) {
|
||||
if (whitelist && whitelist.indexOf(name) >= 0) return;
|
||||
if (whitelist && whitelist.indexOf(name) < 0) return;
|
||||
|
||||
let key = t.identifier(t.toIdentifier(name));
|
||||
let key = t.identifier(name);
|
||||
body.push(t.expressionStatement(
|
||||
t.assignmentExpression("=", t.memberExpression(namespace, key), helpers.get(name))
|
||||
));
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
import template from "babel-template";
|
||||
|
||||
export let _typeof = template(`
|
||||
let helpers = {};
|
||||
export default helpers;
|
||||
|
||||
helpers.typeof = template(`
|
||||
(function (obj) {
|
||||
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
||||
});
|
||||
`);
|
||||
|
||||
export let createRawReactElement = template(`
|
||||
helpers.createRawReactElement = template(`
|
||||
(function () {
|
||||
var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;
|
||||
|
||||
@ -24,7 +27,7 @@ export let createRawReactElement = template(`
|
||||
})()
|
||||
`);
|
||||
|
||||
export let asyncToGenerator = template(`
|
||||
helpers.asyncToGenerator = template(`
|
||||
(function (fn) {
|
||||
return function () {
|
||||
var gen = fn.apply(this, arguments);
|
||||
@ -56,7 +59,7 @@ export let asyncToGenerator = template(`
|
||||
`);
|
||||
|
||||
|
||||
export let classCallCheck = template(`
|
||||
helpers.classCallCheck = template(`
|
||||
(function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
@ -64,7 +67,7 @@ export let classCallCheck = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let createClass = template(`
|
||||
helpers.createClass = template(`
|
||||
(function() {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i ++) {
|
||||
@ -84,7 +87,7 @@ export let createClass = template(`
|
||||
})()
|
||||
`);
|
||||
|
||||
export let defaultProps = template(`
|
||||
helpers.defaultProps = template(`
|
||||
(function (defaultProps, props) {
|
||||
if (defaultProps) {
|
||||
for (var propName in defaultProps) {
|
||||
@ -98,7 +101,7 @@ export let defaultProps = template(`
|
||||
`);
|
||||
|
||||
|
||||
export let defineEnumerableProperties = template(`
|
||||
helpers.defineEnumerableProperties = template(`
|
||||
(function (obj, descs) {
|
||||
for (var key in descs) {
|
||||
var desc = descs[key];
|
||||
@ -110,7 +113,7 @@ export let defineEnumerableProperties = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let defaults = template(`
|
||||
helpers.defaults = template(`
|
||||
(function (obj, defaults) {
|
||||
var keys = Object.getOwnPropertyNames(defaults);
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
@ -124,7 +127,7 @@ export let defaults = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let defineProperty = template(`
|
||||
helpers.defineProperty = template(`
|
||||
(function (obj, key, value) {
|
||||
// Shortcircuit the slow defineProperty path when possible.
|
||||
// We are trying to avoid issues where setters defined on the
|
||||
@ -145,7 +148,7 @@ export let defineProperty = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let _extends = template(`
|
||||
helpers.extends = template(`
|
||||
Object.assign || (function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
@ -159,7 +162,7 @@ export let _extends = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let get = template(`
|
||||
helpers.get = template(`
|
||||
(function get(object, property, receiver) {
|
||||
if (object === null) object = Function.prototype;
|
||||
|
||||
@ -188,7 +191,7 @@ export let get = template(`
|
||||
`);
|
||||
|
||||
|
||||
export let inherits = template(`
|
||||
helpers.inherits = template(`
|
||||
(function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
@ -205,7 +208,7 @@ export let inherits = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let _instanceof = template(`
|
||||
helpers.instanceof = template(`
|
||||
(function (left, right) {
|
||||
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
||||
return right[Symbol.hasInstance](left);
|
||||
@ -216,13 +219,13 @@ export let _instanceof = template(`
|
||||
`);
|
||||
|
||||
|
||||
export let interopRequireDefault = template(`
|
||||
helpers.interopRequireDefault = template(`
|
||||
(function (obj) {
|
||||
return obj && obj.__esModule ? obj : { default: obj };
|
||||
})
|
||||
`);
|
||||
|
||||
export let interopRequireWildcard = template(`
|
||||
helpers.interopRequireWildcard = template(`
|
||||
(function (obj) {
|
||||
if (obj && obj.__esModule) {
|
||||
return obj;
|
||||
@ -239,7 +242,7 @@ export let interopRequireWildcard = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let newArrowCheck = template(`
|
||||
helpers.newArrowCheck = template(`
|
||||
(function (innerThis, boundThis) {
|
||||
if (innerThis !== boundThis) {
|
||||
throw new TypeError("Cannot instantiate an arrow function");
|
||||
@ -247,13 +250,13 @@ export let newArrowCheck = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let objectDestructuringEmpty = template(`
|
||||
helpers.objectDestructuringEmpty = template(`
|
||||
(function (obj) {
|
||||
if (obj == null) throw new TypeError("Cannot destructure undefined");
|
||||
});
|
||||
`);
|
||||
|
||||
export let objectWithoutProperties = template(`
|
||||
helpers.objectWithoutProperties = template(`
|
||||
(function (obj, keys) {
|
||||
var target = {};
|
||||
for (var i in obj) {
|
||||
@ -265,7 +268,7 @@ export let objectWithoutProperties = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let possibleConstructorReturn = template(`
|
||||
helpers.possibleConstructorReturn = template(`
|
||||
(function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
@ -274,11 +277,11 @@ export let possibleConstructorReturn = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let selfGlobal = template(`
|
||||
helpers.selfGlobal = template(`
|
||||
typeof global === "undefined" ? self : global
|
||||
`);
|
||||
|
||||
export let set = template(`
|
||||
helpers.set = template(`
|
||||
(function set(object, property, value, receiver) {
|
||||
var desc = Object.getOwnPropertyDescriptor(object, property);
|
||||
|
||||
@ -302,7 +305,7 @@ export let set = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let slicedToArray = template(`
|
||||
helpers.slicedToArray = template(`
|
||||
(function () {
|
||||
// Broken out into a separate function to avoid deoptimizations due to the try/catch for the
|
||||
// array iterator case.
|
||||
@ -351,7 +354,7 @@ export let slicedToArray = template(`
|
||||
})();
|
||||
`);
|
||||
|
||||
export let slicedToArrayLoose = template(`
|
||||
helpers.slicedToArrayLoose = template(`
|
||||
(function (arr, i) {
|
||||
if (Array.isArray(arr)) {
|
||||
return arr;
|
||||
@ -368,7 +371,7 @@ export let slicedToArrayLoose = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let taggedTemplateLiteral = template(`
|
||||
helpers.taggedTemplateLiteral = template(`
|
||||
(function (strings, raw) {
|
||||
return Object.freeze(Object.defineProperties(strings, {
|
||||
raw: { value: Object.freeze(raw) }
|
||||
@ -376,14 +379,14 @@ export let taggedTemplateLiteral = template(`
|
||||
});
|
||||
`);
|
||||
|
||||
export let taggedTemplateLiteralLoose = template(`
|
||||
helpers.taggedTemplateLiteralLoose = template(`
|
||||
(function (strings, raw) {
|
||||
strings.raw = raw;
|
||||
return strings;
|
||||
});
|
||||
`);
|
||||
|
||||
export let temporalRef = template(`
|
||||
helpers.temporalRef = template(`
|
||||
(function (val, name, undef) {
|
||||
if (val === undef) {
|
||||
throw new ReferenceError(name + " is not defined - temporal dead zone");
|
||||
@ -393,17 +396,17 @@ export let temporalRef = template(`
|
||||
})
|
||||
`);
|
||||
|
||||
export let temporalUndefined = template(`
|
||||
helpers.temporalUndefined = template(`
|
||||
({})
|
||||
`);
|
||||
|
||||
export let toArray = template(`
|
||||
helpers.toArray = template(`
|
||||
(function (arr) {
|
||||
return Array.isArray(arr) ? arr : Array.from(arr);
|
||||
});
|
||||
`);
|
||||
|
||||
export let toConsumableArray = template(`
|
||||
helpers.toConsumableArray = template(`
|
||||
(function (arr) {
|
||||
if (Array.isArray(arr)) {
|
||||
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import * as helpers from "./helpers";
|
||||
import helpers from "./helpers";
|
||||
|
||||
export function get(name) {
|
||||
let fn = helpers[name] || helpers[`_${name}`];
|
||||
let fn = helpers[name];
|
||||
if (!fn) throw ReferenceError;
|
||||
|
||||
return fn().expression;
|
||||
|
||||
@ -1 +1 @@
|
||||
babelHelpers._instanceof(a, b);
|
||||
babelHelpers.instanceof(a, b);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
var s = Symbol("s");
|
||||
assert.ok((typeof s === "undefined" ? "undefined" : babelHelpers._typeof(s)) === "symbol");
|
||||
assert.equal(typeof s === "undefined" ? "undefined" : babelHelpers._typeof(s), "symbol");
|
||||
assert.equal(babelHelpers._typeof(babelHelpers._typeof(s.foo)), "symbol");
|
||||
assert.ok((typeof s === "undefined" ? "undefined" : babelHelpers.typeof(s)) === "symbol");
|
||||
assert.equal(typeof s === "undefined" ? "undefined" : babelHelpers.typeof(s), "symbol");
|
||||
assert.equal(babelHelpers.typeof(babelHelpers.typeof(s.foo)), "symbol");
|
||||
typeof s === "string";
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
var foo = babelHelpers._extends({}, bar);
|
||||
var foo = babelHelpers.extends({}, bar);
|
||||
|
||||
var foo = babelHelpers._extends({}, bar, {
|
||||
var foo = babelHelpers.extends({}, bar, {
|
||||
bar: "foo"
|
||||
});
|
||||
|
||||
var foo = babelHelpers._extends({}, bar, {
|
||||
var foo = babelHelpers.extends({}, bar, {
|
||||
bar: "foo"
|
||||
});
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
React.createElement(Component, babelHelpers._extends({}, props, {
|
||||
React.createElement(Component, babelHelpers.extends({}, props, {
|
||||
sound: "moo" }));
|
||||
|
||||
@ -1 +1 @@
|
||||
React.createElement(Component, babelHelpers._extends({}, x, { y: 2, z: true }));
|
||||
React.createElement(Component, babelHelpers.extends({}, x, { y: 2, z: true }));
|
||||
|
||||
@ -1 +1 @@
|
||||
React.createElement(Component, babelHelpers._extends({ y: 2, z: true }, x));
|
||||
React.createElement(Component, babelHelpers.extends({ y: 2, z: true }, x));
|
||||
|
||||
@ -1 +1 @@
|
||||
React.createElement(Component, babelHelpers._extends({ y: 2 }, x, { z: true }));
|
||||
React.createElement(Component, babelHelpers.extends({ y: 2 }, x, { z: true }));
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
var outputFile = require("output-file-sync");
|
||||
var each = require("lodash/collection/each");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
var coreDefinitions = require("babel-plugin-transform-runtime").definitions;
|
||||
|
||||
@ -84,6 +85,11 @@ function buildHelper(helperName) {
|
||||
|
||||
each(helpers.list, function (helperName) {
|
||||
writeFile("helpers/" + helperName + ".js", buildHelper(helperName));
|
||||
|
||||
// compat
|
||||
var helperAlias = _.kebabCase(helperName);
|
||||
writeFile("helpers/_" + helperAlias + ".js", buildHelper(helperName));
|
||||
writeFile("helpers/" + helperAlias + ".js", buildHelper(helperName));
|
||||
});
|
||||
|
||||
writeFile("regenerator/index.js", readFile("regenerator/runtime-module", true));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user