Skip to content

Commit a0690e3

Browse files
Split regeneratorRuntime into multiple helpers (#17238)
1 parent d1a7dcb commit a0690e3

File tree

95 files changed

+2156
-1282
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+2156
-1282
lines changed

packages/babel-core/src/transformation/file/file.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ export default class File {
107107
* considered unavailable.
108108
*/
109109
availableHelper(name: string, versionRange?: string | null): boolean {
110+
if (helpers.isInternal(name)) return false;
111+
110112
let minVersion;
111113
try {
112114
minVersion = helpers.minVersion(name);
@@ -151,6 +153,13 @@ export default class File {
151153
}
152154

153155
addHelper(name: string): t.Identifier {
156+
if (helpers.isInternal(name)) {
157+
throw new Error("Cannot use internal helper " + name);
158+
}
159+
return this._addHelper(name);
160+
}
161+
162+
_addHelper(name: string): t.Identifier {
154163
const declar = this.declarations[name];
155164
if (declar) return cloneNode(declar);
156165

@@ -168,7 +177,7 @@ export default class File {
168177

169178
const dependencies: { [key: string]: t.Identifier } = {};
170179
for (const dep of helpers.getDependencies(name)) {
171-
dependencies[dep] = this.addHelper(dep);
180+
dependencies[dep] = this._addHelper(dep);
172181
}
173182

174183
const { nodes, globals } = helpers.get(

packages/babel-helpers/LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
MIT License
22

33
Copyright (c) 2014-present Sebastian McKenzie and other contributors
4-
Copyright (c) 2014-present, Facebook, Inc. (ONLY ./src/helpers/regeneratorRuntime.js)
4+
Copyright (c) 2014-present, Facebook, Inc. (ONLY ./src/helpers/regenerator* files)
55

66
Permission is hereby granted, free of charge, to any person obtaining
77
a copy of this software and associated documentation files (the

packages/babel-helpers/scripts/build-helper-metadata.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*
1919
* @returns {HelperMetadata}
2020
*/
21-
export function getHelperMetadata(babel, code, helperName) {
21+
export function getHelperMetadata(babel, code, helperName, internal = false) {
2222
const globals = new Set();
2323
// Maps imported identifier name -> helper name
2424
const dependenciesBindings = new Map();
@@ -181,6 +181,7 @@ export function getHelperMetadata(babel, code, helperName) {
181181
dependencies: Object.fromEntries(dependencies),
182182
exportBindingAssignments,
183183
exportName,
184+
internal,
184185
},
185186
];
186187
}
@@ -204,6 +205,7 @@ export function stringifyMetadata(metadata) {
204205
exportBindingAssignments: ${JSON.stringify(metadata.exportBindingAssignments)},
205206
exportName: ${JSON.stringify(metadata.exportName)},
206207
dependencies: ${JSON.stringify(metadata.dependencies)},
208+
internal: ${JSON.stringify(metadata.internal)},
207209
}
208210
`;
209211
}

packages/babel-helpers/scripts/generate-helpers.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export interface HelperMetadata {
110110
dependencies: { [name: string]: string[] };
111111
exportBindingAssignments: string[];
112112
exportName: string;
113+
internal: boolean;
113114
}
114115
115116
function helper(minVersion: string, source: string, metadata: HelperMetadata): Helper {
@@ -150,6 +151,7 @@ const helpers: Record<string, Helper> = {
150151
}
151152
const { minVersion } = minVersionMatch.groups;
152153

154+
const internal = code.includes("@internal");
153155
const onlyBabel7 = code.includes("@onlyBabel7");
154156
const mangleFns = code.includes("@mangleFns");
155157
const noMangleFns = [];
@@ -191,7 +193,7 @@ const helpers: Record<string, Helper> = {
191193

192194
let metadata;
193195
// eslint-disable-next-line prefer-const
194-
[code, metadata] = getHelperMetadata(babel, code, helperName);
196+
[code, metadata] = getHelperMetadata(babel, code, helperName, internal);
195197

196198
const helperStr = `\
197199
// size: ${code.length}, gzip size: ${gzipSync(code).length}

0 commit comments

Comments
 (0)