diff --git a/lib/babel-pipeline.js b/lib/babel-pipeline.js index 653a55b3d..208b64a55 100644 --- a/lib/babel-pipeline.js +++ b/lib/babel-pipeline.js @@ -130,6 +130,7 @@ function build(projectDir, cacheDir, userOptions, compileEnhancements) { const ensureStage4 = wantsStage4(userOptions, projectDir); const containsAsyncGenerators = makeValueChecker('@babel/plugin-syntax-async-generators'); const containsObjectRestSpread = makeValueChecker('@babel/plugin-syntax-object-rest-spread'); + const containsOptionalCatchBinding = makeValueChecker('@babel/plugin-syntax-optional-catch-binding'); const containsStage4 = makeValueChecker('../stage-4'); const containsTransformTestFiles = makeValueChecker('@ava/babel-preset-transform-test-files'); @@ -162,6 +163,9 @@ function build(projectDir, cacheDir, userOptions, compileEnhancements) { if (!testOptions.plugins.some(containsObjectRestSpread)) { // TODO: Remove once Babel can parse this syntax unaided. testOptions.plugins.unshift(createConfigItem('@babel/plugin-syntax-object-rest-spread', 'plugin')); } + if (!testOptions.plugins.some(containsOptionalCatchBinding)) { // TODO: Remove once Babel can parse this syntax unaided. + testOptions.plugins.unshift(createConfigItem('@babel/plugin-syntax-optional-catch-binding', 'plugin')); + } if (ensureStage4 && !testOptions.presets.some(containsStage4)) { // Apply last. testOptions.presets.unshift(createConfigItem('../stage-4', 'preset')); diff --git a/package-lock.json b/package-lock.json index e0d8898a1..651e85061 100644 --- a/package-lock.json +++ b/package-lock.json @@ -483,6 +483,13 @@ "integrity": "sha1-Ph3T1drrQnDk7khjZB1Pqga7zRE=", "requires": { "@babel/helper-plugin-utils": "7.0.0-beta.49" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.49.tgz", + "integrity": "sha1-Dp/LuDT4eLs2XSqOqQ7uIbo8zSM=" + } } }, "@babel/plugin-transform-async-to-generator": { diff --git a/package.json b/package.json index 7d308076b..f3b9bf1de 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "@babel/generator": "7.0.0-beta.49", "@babel/plugin-syntax-async-generators": "7.0.0-beta.49", "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.49", + "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.49", "@concordance/react": "^1.0.0", "ansi-escapes": "^3.1.0", "ansi-styles": "^3.2.1",