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:
parent
c3042cfd27
commit
2c31587aa1
@ -3,18 +3,18 @@ import { template, types as t } from "@babel/core";
|
|||||||
const helperIDs = new WeakMap();
|
const helperIDs = new WeakMap();
|
||||||
|
|
||||||
export default function addCreateSuperHelper(file) {
|
export default function addCreateSuperHelper(file) {
|
||||||
try {
|
|
||||||
return file.addHelper("createSuper");
|
|
||||||
} catch {
|
|
||||||
// Babel <7.9.0 doesn't support the helper.
|
|
||||||
}
|
|
||||||
|
|
||||||
if (helperIDs.has(file)) {
|
if (helperIDs.has(file)) {
|
||||||
// TODO: Only use t.cloneNode in Babel 8
|
// TODO: Only use t.cloneNode in Babel 8
|
||||||
// t.cloneNode isn't supported in every version
|
// t.cloneNode isn't supported in every version
|
||||||
return (t.cloneNode || t.clone)(helperIDs.get(file));
|
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");
|
const id = file.scope.generateUidIdentifier("createSuper");
|
||||||
helperIDs.set(file, id);
|
helperIDs.set(file, id);
|
||||||
|
|
||||||
|
|||||||
@ -23,15 +23,12 @@ cd ../..
|
|||||||
startLocalRegistry "$PWD"/scripts/integration-tests/verdaccio-config.yml
|
startLocalRegistry "$PWD"/scripts/integration-tests/verdaccio-config.yml
|
||||||
yarn upgrade --scope @babel
|
yarn upgrade --scope @babel
|
||||||
|
|
||||||
# We use @babel/core 7.5.5 instead of 7.0.0 because without babel/babel#10208
|
|
||||||
# our @babel/standalone build fails.
|
|
||||||
|
|
||||||
node -e "\
|
node -e "\
|
||||||
var pkg = require('./package.json');\
|
var pkg = require('./package.json');\
|
||||||
pkg.devDependencies['@babel/core'] = '7.5.5';\
|
pkg.devDependencies['@babel/core'] = '7.0.0';\
|
||||||
Object.assign(pkg.resolutions, {\
|
Object.assign(pkg.resolutions, {\
|
||||||
'@babel/core': '7.5.5',\
|
'@babel/core': '7.0.0',\
|
||||||
'@babel/helpers': '7.5.5',\
|
'@babel/helpers': '7.0.0',\
|
||||||
'@babel/traverse': '7.0.0'\
|
'@babel/traverse': '7.0.0'\
|
||||||
});\
|
});\
|
||||||
fs.writeFileSync('./package.json', JSON.stringify(pkg, null, 2));\
|
fs.writeFileSync('./package.json', JSON.stringify(pkg, null, 2));\
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user