Skip to content

Commit

Permalink
Move all runtime helpers to individual files (#16495)
Browse files Browse the repository at this point in the history
* Move all runtime helpers to individual files

* Regenerate babel-runtime

* Update fixtures

* Make errors for bugs in helpers more helpful (and not "this.hub is undefined")

* Wrap Babel 7 helpers in !BABEL_8_BREAKING

* Skip failing decorators tests in Babel7/8

* Disable most CI

* Skip failing Babel 7 old class helpers test in Babel 8

* Use latest decorators version in metadata test

* Revert "Disable most CI"

This reverts commit b98b0dc.
  • Loading branch information
nicolo-ribaudo committed May 16, 2024
1 parent 5a7c827 commit db3e9a6
Show file tree
Hide file tree
Showing 197 changed files with 4,644 additions and 4,475 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
(function (global) {
var babelHelpers = global.babelHelpers = {};
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, babelHelpers.toPropertyKey(descriptor.key), descriptor);
function _defineProperties(e, r) {
for (var t = 0; t < r.length; t++) {
var o = r[t];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, babelHelpers.toPropertyKey(o.key), o);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
Object.defineProperty(Constructor, "prototype", {
writable: false
});
return Constructor;
function _createClass(e, r, t) {
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
writable: !1
}), e;
}
babelHelpers.createClass = _createClass;
})(typeof global === "undefined" ? self : global);
41 changes: 33 additions & 8 deletions packages/babel-helpers/scripts/generate-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,27 @@ export default async function generateHelpers() {
*/
import template from "@babel/template";
import type * as t from "@babel/types";
function helper(minVersion: string, source: string) {
interface Helper {
minVersion: string;
ast: () => t.Program;
}
function helper(minVersion: string, source: string): Helper {
return Object.freeze({
minVersion,
ast: () => template.program.ast(source, { preserveComments: true }),
})
}
export default Object.freeze({
export { helpers as default };
const helpers: Record<string, Helper> = {
__proto__: null,
`;

let babel7extraOutput = "";

for (const file of (await fs.promises.readdir(HELPERS_FOLDER)).sort()) {
if (IGNORED_FILES.has(file)) continue;
if (file.startsWith(".")) continue; // ignore e.g. vim swap files
Expand All @@ -51,10 +61,7 @@ export default Object.freeze({
}
const { minVersion } = minVersionMatch.groups;

if (IS_BABEL_8() && code.includes("@onlyBabel7")) {
continue;
}

const onlyBabel7 = code.includes("@onlyBabel7");
const mangleFns = code.includes("@mangleFns");
const noMangleFns = [];

Expand Down Expand Up @@ -114,15 +121,33 @@ export default Object.freeze({
})
).code;

output += `\
const helperStr = `\
// size: ${code.length}, gzip size: ${gzipSync(code).length}
${JSON.stringify(helperName)}: helper(
${JSON.stringify(minVersion)},
${JSON.stringify(code)},
),
`;

if (onlyBabel7) {
if (!IS_BABEL_8()) babel7extraOutput += helperStr;
} else {
output += helperStr;
}
}

output += "};";

if (babel7extraOutput) {
output += `
if (!process.env.BABEL_8_BREAKING) {
Object.assign(helpers, {
${babel7extraOutput}
});
}
`;
}

output += "});";
return output;
}
470 changes: 435 additions & 35 deletions packages/babel-helpers/src/helpers-generated.ts

Large diffs are not rendered by default.

Loading

0 comments on commit db3e9a6

Please sign in to comment.