Fix createSuper in Babel <7.5.5 (#11341)
* Fix createSuper in Babel <7.5.5 In Babel <7.5.5, addHelper only throws when called for the first time. This was fixed by babel/babel#10208, but since we are already adding a workaround for <7.9.0, we may as well fix <7.5.5 * Use 7.0.0 in "babel-old-version" test
This commit is contained in:
@@ -3,18 +3,18 @@ import { template, types as t } from "@babel/core";
|
||||
const helperIDs = new WeakMap();
|
||||
|
||||
export default function addCreateSuperHelper(file) {
|
||||
try {
|
||||
return file.addHelper("createSuper");
|
||||
} catch {
|
||||
// Babel <7.9.0 doesn't support the helper.
|
||||
}
|
||||
|
||||
if (helperIDs.has(file)) {
|
||||
// TODO: Only use t.cloneNode in Babel 8
|
||||
// t.cloneNode isn't supported in every version
|
||||
return (t.cloneNode || t.clone)(helperIDs.get(file));
|
||||
}
|
||||
|
||||
try {
|
||||
return file.addHelper("createSuper");
|
||||
} catch {
|
||||
// Babel <7.9.0 doesn't support the helper.
|
||||
}
|
||||
|
||||
const id = file.scope.generateUidIdentifier("createSuper");
|
||||
helperIDs.set(file, id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user