diff --git a/packages/babel-node/test/config.json b/packages/babel-node/test/config.json index 06c1c5853007..e82f5fcfa643 100644 --- a/packages/babel-node/test/config.json +++ b/packages/babel-node/test/config.json @@ -1,7 +1,7 @@ { "presets": [ "../../babel-preset-env", - ["../../babel-preset-react"] + ["../../babel-preset-react", { "runtime": "classic" }] ], "plugins": [ "../../babel-plugin-transform-strict-mode", diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/7178/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/7178/options.json index e1385e03944b..6dc5e9a6a355 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/7178/options.json +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/7178/options.json @@ -2,7 +2,7 @@ "plugins": [ "external-helpers", "transform-async-to-generator", - "transform-react-jsx", + ["transform-react-jsx", { "runtime": "classic" }], "transform-react-constant-elements" ] } diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json index d480b6d0abae..41e2cadf635e 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/options.json @@ -2,7 +2,7 @@ "plugins": [ "transform-block-scoping", "syntax-jsx", - "transform-react-jsx", + ["transform-react-jsx", { "runtime": "classic" }], "transform-block-scoped-functions", "transform-arrow-functions" ] diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/options.json b/packages/babel-plugin-transform-classes/test/fixtures/regression/options.json index c58ca4ae2fa3..5afc96f77408 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/options.json +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/options.json @@ -1,4 +1,7 @@ { "plugins": ["external-helpers", "proposal-class-properties"], - "presets": ["env", "react"] + "presets": [ + "env", + ["react", { "runtime": "classic" }] + ] } diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-3/options.json b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-3/options.json index 4ffef06dbfb5..5a01758bcc3f 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-3/options.json +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/export-default-arrow-renaming-3/options.json @@ -1,3 +1,6 @@ { - "presets": ["env", "react"] + "presets": [ + "env", + ["react", { "runtime": "classic" }] + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json index 72ce72ca0b17..646be547c24b 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/options.json @@ -1,3 +1,6 @@ { - "plugins": ["transform-react-jsx", "transform-react-constant-elements"] + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }], + "transform-react-constant-elements" + ] } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json index 72ce72ca0b17..646be547c24b 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/options.json @@ -1,3 +1,6 @@ { - "plugins": ["transform-react-jsx", "transform-react-constant-elements"] + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }], + "transform-react-constant-elements" + ] } diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/lowercase-member-expression/options.json b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/lowercase-member-expression/options.json index 0979da7affb5..cf2845dc2ab6 100644 --- a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/lowercase-member-expression/options.json +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/lowercase-member-expression/options.json @@ -3,7 +3,7 @@ "external-helpers", "syntax-jsx", "transform-react-inline-elements", - "transform-react-jsx", + ["transform-react-jsx", { "runtime": "classic" }], "transform-modules-commonjs" ] } diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json index 0979da7affb5..cf2845dc2ab6 100644 --- a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/inline-elements/member-expression/options.json @@ -3,7 +3,7 @@ "external-helpers", "syntax-jsx", "transform-react-inline-elements", - "transform-react-jsx", + ["transform-react-jsx", { "runtime": "classic" }], "transform-modules-commonjs" ] } diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json index ba074de5fb6d..59c68d65b140 100644 --- a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/options.json @@ -3,6 +3,6 @@ "external-helpers", "syntax-jsx", "transform-react-inline-elements", - "transform-react-jsx" + ["transform-react-jsx", { "runtime": "classic" }] ] } diff --git a/packages/babel-plugin-transform-react-jsx/src/index.js b/packages/babel-plugin-transform-react-jsx/src/index.js index 4e0c5b69b3bb..69e277cf61af 100644 --- a/packages/babel-plugin-transform-react-jsx/src/index.js +++ b/packages/babel-plugin-transform-react-jsx/src/index.js @@ -5,14 +5,14 @@ import transformAutomatic from "./transform-automatic"; import { declare } from "@babel/helper-plugin-utils"; export default declare((api, options) => { - const { runtime = "classic" } = options; + const { runtime = "automatic" } = options; // we throw a warning in helper-builder-react-jsx-experimental if runtime // is neither automatic or classic because we will remove this file // in v8.0.0 if (runtime === "classic") { return transformClassic(api, options); - } else { - return transformAutomatic(api, options); } + + return transformAutomatic(api, options); }); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/options.json new file mode 100644 index 000000000000..3f0390431481 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pure": false, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/output.js new file mode 100644 index 000000000000..3cd05d5f9f2f --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma-classic-runtime/output.js @@ -0,0 +1 @@ +React.createElement("div", null); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma/output.js index 3cd05d5f9f2f..fd783106b63c 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-default-pragma/output.js @@ -1 +1,3 @@ -React.createElement("div", null); +var _reactJsxRuntime = require("react/jsx-runtime"); + +_reactJsxRuntime.jsx("div", {}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/input.js new file mode 100644 index 000000000000..6b8761b4a90a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/input.js @@ -0,0 +1,3 @@ +/* @jsx h */ + +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/options.json new file mode 100644 index 000000000000..3f0390431481 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pure": false, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/options.json index 8608ef373955..50880d98fa4e 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-comment/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", { "pure": false }] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/options.json new file mode 100644 index 000000000000..9a94a0e2ae35 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pragma": "h", "pure": false, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/options.json index 65d9e8ae0d93..e99ec28707d6 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/false-pragma-option/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", { "pragma": "h", "pure": false }] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/options.json new file mode 100644 index 000000000000..1eb39754fc94 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pure": true, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/output.js new file mode 100644 index 000000000000..6ad0513bb203 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma-classic-runtime/output.js @@ -0,0 +1,2 @@ +/*#__PURE__*/ +React.createElement("div", null); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma/output.js index 6ad0513bb203..5518c29044fd 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-default-pragma/output.js @@ -1,2 +1,4 @@ +var _reactJsxRuntime = require("react/jsx-runtime"); + /*#__PURE__*/ -React.createElement("div", null); +_reactJsxRuntime.jsx("div", {}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/input.js new file mode 100644 index 000000000000..6b8761b4a90a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/input.js @@ -0,0 +1,3 @@ +/* @jsx h */ + +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/options.json new file mode 100644 index 000000000000..1eb39754fc94 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pure": true, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/options.json index c9f1fc61d318..b5ce0c6f2451 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-comment/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", { "pure": true }] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/options.json new file mode 100644 index 000000000000..4c12140e4350 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pragma": "h", "pure": true, "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/options.json index 8d4223a48bf5..02ae74af0ecd 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/true-pragma-option/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", { "pragma": "h", "pure": true }] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/options.json new file mode 100644 index 000000000000..d21f1136dea5 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/output.js new file mode 100644 index 000000000000..6ad0513bb203 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma-classic-runtime/output.js @@ -0,0 +1,2 @@ +/*#__PURE__*/ +React.createElement("div", null); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma/output.js index 6ad0513bb203..5518c29044fd 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-default-pragma/output.js @@ -1,2 +1,4 @@ +var _reactJsxRuntime = require("react/jsx-runtime"); + /*#__PURE__*/ -React.createElement("div", null); +_reactJsxRuntime.jsx("div", {}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/input.js new file mode 100644 index 000000000000..6b8761b4a90a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/input.js @@ -0,0 +1,3 @@ +/* @jsx h */ + +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/options.json new file mode 100644 index 000000000000..d21f1136dea5 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/options.json index c6c850168596..c9fd57ccc1ef 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-comment/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", {}] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/input.js new file mode 100644 index 000000000000..cbe1d12c589b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/input.js @@ -0,0 +1 @@ +
; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/options.json new file mode 100644 index 000000000000..bb8990548203 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "pragma": "h", "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/options.json index 46f657580a52..d42b9d0a8609 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/pure/unset-pragma-option/options.json @@ -1,5 +1,6 @@ { "plugins": [ ["transform-react-jsx", { "pragma": "h" }] - ] + ], + "throws": "pragma and pragmaFrag cannot be set when runtime is automatic." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json index 17c61ec6cf9d..778a933de4cb 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-react-jsx", { "pragma": "foo.bar" }]] + "plugins": [["transform-react-jsx", { "pragma": "foo.bar", "runtime": "classic" }]] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-pragma-option/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-pragma-option/options.json index 2aae85c034a8..5db83b99f444 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-pragma-option/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/honor-custom-jsx-pragma-option/options.json @@ -1,3 +1,3 @@ { - "plugins": [["transform-react-jsx", { "pragma": "dom" }]] + "plugins": [["transform-react-jsx", { "pragma": "dom", "runtime": "classic" }]] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json index 2266a21df9da..3ae00ebef35a 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/options.json @@ -2,7 +2,7 @@ "plugins": [ "external-helpers", "syntax-jsx", - "transform-react-jsx", + ["transform-react-jsx", { "runtime": "classic" }], "transform-react-display-name", "transform-arrow-functions" ] diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json index 81639b17e01b..0cb674fb090d 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json @@ -1,3 +1,6 @@ { - "plugins": ["transform-react-jsx", "transform-property-literals"] + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }], + "transform-property-literals" + ] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/options.json index 644fc6f6da28..390bd81516c2 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/options.json @@ -4,6 +4,7 @@ "transform-react-jsx", { "pragma": "h", + "runtime": "classic", "throwIfNamespace": false } ] diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-throw-error-namespaces-if-not-flag/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-throw-error-namespaces-if-not-flag/options.json index 426249807eb6..8264ca4f7426 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-throw-error-namespaces-if-not-flag/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-throw-error-namespaces-if-not-flag/options.json @@ -4,6 +4,7 @@ "transform-react-jsx", { "pragma": "h", + "runtime": "classic", "throwIfNamespace": true } ] diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/input.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/input.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/input.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/options.json new file mode 100644 index 000000000000..d21f1136dea5 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/options.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + ["transform-react-jsx", { "runtime": "classic" }] + ] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/output.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/output.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default-classic-runtime/output.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/options.json deleted file mode 100644 index 5e1d82404dd3..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/regression/pragma-frag-set-default/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "plugins": [ - "transform-react-jsx" - ] -} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/input.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/input.js rename to packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/input.js diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/options.json similarity index 100% rename from packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/options.json rename to packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/options.json diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/output.js new file mode 100644 index 000000000000..607dafdc732b --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-automatic/output.js @@ -0,0 +1,5 @@ +var _reactJsxRuntime = require("react/jsx-runtime"); + +var x = /*#__PURE__*/_reactJsxRuntime.jsx("div", { + children: /*#__PURE__*/_reactJsxRuntime.jsx("span", {}) +}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/output.js deleted file mode 100644 index ebd8fce02e70..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/runtime/defaults-to-classic/output.js +++ /dev/null @@ -1 +0,0 @@ -var x = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null)); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/assignment/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/assignment/output.js index 5d6aec143818..444d75ea61dd 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/assignment/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/assignment/output.js @@ -1,3 +1,5 @@ -var div = /*#__PURE__*/React.createElement(Component, babelHelpers.extends({}, props, { +var _reactJsxRuntime = require("react/jsx-runtime"); + +var div = /*#__PURE__*/_reactJsxRuntime.jsx(Component, babelHelpers.extends({}, props, { foo: "bar" })); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/invalid-use-builtins-false/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/invalid-use-builtins-false/options.json index c0e16b599161..32bfbec33599 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/invalid-use-builtins-false/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-babel-extend/invalid-use-builtins-false/options.json @@ -1,4 +1,4 @@ { - "plugins": [["transform-react-jsx", { "useBuiltIns": false }]], + "plugins": [["transform-react-jsx", { "runtime": "classic", "useBuiltIns": false }]], "rejects": "transform-react-jsx: Since \"useBuiltIns\" is removed in Babel 8, you must remove it from your config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n`useBuiltIns: false`, you can use the following config\n{\n \"plugins\": [\n \"@babel/plugin-transform-react-jsx\",\n [\"@babel/plugin-proposal-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": false }]\n ]\n}" } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/assignment/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/assignment/output.js index a4005fba7aeb..d05561223fd1 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/assignment/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/assignment/output.js @@ -1,3 +1,5 @@ -var div = /*#__PURE__*/React.createElement(Component, Object.assign({}, props, { +var _reactJsxRuntime = require("react/jsx-runtime"); + +var div = /*#__PURE__*/_reactJsxRuntime.jsx(Component, Object.assign({}, props, { foo: "bar" })); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-builtins-true/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-builtins-true/options.json index 8d1cd90274c3..be78737294c6 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-builtins-true/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-builtins-true/options.json @@ -1,4 +1,4 @@ { - "plugins": [["transform-react-jsx", { "useBuiltIns": true }]], + "plugins": [["transform-react-jsx", { "runtime": "classic", "useBuiltIns": true }]], "rejects": "transform-react-jsx: Since \"useBuiltIns\" is removed in Babel 8, you must remove it from your config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n`useBuiltIns: true`, you can use the following config\n{\n \"plugins\": [\n \"@babel/plugin-transform-react-jsx\",\n [\"@babel/plugin-proposal-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": true }]\n ]\n}" } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-false/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-false/options.json index 8680ca57b5e1..832e275e424b 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-false/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-false/options.json @@ -1,4 +1,4 @@ { - "plugins": [["transform-react-jsx", { "useSpread": false }]], + "plugins": [["transform-react-jsx", { "runtime": "classic", "useSpread": false }]], "rejects": "transform-react-jsx: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-true/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-true/options.json index 4454517c9ceb..a7c9f435dea5 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-true/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/transform-to-object-assign/invalid-use-spread-true/options.json @@ -1,4 +1,4 @@ { - "plugins": [["transform-react-jsx", { "useSpread": true }]], + "plugins": [["transform-react-jsx", { "runtime": "classic", "useSpread": true }]], "rejects": "transform-react-jsx: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config." } diff --git a/packages/babel-plugin-transform-regenerator/test/fixtures/scope/8525/options.json b/packages/babel-plugin-transform-regenerator/test/fixtures/scope/8525/options.json index 1cb51ff34f02..94b653035559 100644 --- a/packages/babel-plugin-transform-regenerator/test/fixtures/scope/8525/options.json +++ b/packages/babel-plugin-transform-regenerator/test/fixtures/scope/8525/options.json @@ -1,4 +1,6 @@ { - "presets": ["react"], + "presets": [ + ["react", { "runtime": "classic" }] + ], "plugins": ["transform-regenerator"] } diff --git a/packages/babel-preset-react/src/index.js b/packages/babel-preset-react/src/index.js index d50c38297a18..1ef1cddbae08 100644 --- a/packages/babel-preset-react/src/index.js +++ b/packages/babel-preset-react/src/index.js @@ -9,21 +9,15 @@ import transformReactPure from "@babel/plugin-transform-react-pure-annotations"; export default declare((api, opts) => { api.assertVersion(7); - let { pragma, pragmaFrag } = opts; - const { pure, + pragma, + pragmaFrag, throwIfNamespace = true, - runtime = "classic", + runtime = "automatic", importSource, } = opts; - // TODO: (Babel 8) Remove setting these defaults - if (runtime === "classic") { - pragma = pragma || "React.createElement"; - pragmaFrag = pragmaFrag || "React.Fragment"; - } - // TODO: (Babel 8) Don't cast these options but validate it const development = !!opts.development; diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json index 6ca8659a61e3..cb9c32c34e68 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json @@ -1,4 +1,4 @@ { - "presets": [["react", { "development": true }]], + "presets": [["react", { "development": true, "runtime": "classic" }]], "os": ["win32"] } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development/options.json b/packages/babel-preset-react/test/fixtures/preset-options/development/options.json index 69900e734466..d563df88c2a0 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/development/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/development/options.json @@ -1,4 +1,4 @@ { - "presets": [["react", { "development": true }]], + "presets": [["react", { "development": true, "runtime": "classic" }]], "os": ["linux", "darwin"] } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/empty-options/output.js b/packages/babel-preset-react/test/fixtures/preset-options/empty-options/output.js index 6bb6d5f16940..1b9e086df135 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/empty-options/output.js +++ b/packages/babel-preset-react/test/fixtures/preset-options/empty-options/output.js @@ -1,4 +1,6 @@ +var _reactJsxRuntime = require("react/jsx-runtime"); + /*#__PURE__*/ -React.createElement(Foo, { +_reactJsxRuntime.jsx(Foo, { bar: "baz" }); diff --git a/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json b/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json index 12d195e58bc0..d3153f41ed88 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/no-options/options.json @@ -1,3 +1,5 @@ { - "presets": ["react"] + "presets": [ + ["react", { "runtime": "classic" }] + ] } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/options.json b/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/options.json index 12d195e58bc0..f09b6fdf4b3c 100644 --- a/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/options.json +++ b/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/options.json @@ -1,3 +1,6 @@ { - "presets": ["react"] + "presets": [ + ["react", { "runtime": "classic" }] + ], + "throws": "transform-react-jsx: pragma has been set but pragmaFrag has not been set" } diff --git a/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/output.js b/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/output.js deleted file mode 100644 index bc6f729c4978..000000000000 --- a/packages/babel-preset-react/test/fixtures/preset-options/runtime-classic-pragma-no-frag/output.js +++ /dev/null @@ -1,2 +0,0 @@ -/** @jsx jsx */ -const Foo = jsx(React.Fragment, null); diff --git a/packages/babel-preset-react/test/fixtures/regression/11294/options.json b/packages/babel-preset-react/test/fixtures/regression/11294/options.json index 238981a96b81..7362dbe7e4bb 100644 --- a/packages/babel-preset-react/test/fixtures/regression/11294/options.json +++ b/packages/babel-preset-react/test/fixtures/regression/11294/options.json @@ -1,4 +1,4 @@ { "presets": [ - ["react", { "pragma": "__jsx" }]] + ["react", { "pragma": "__jsx", "runtime": "classic" }]] } diff --git a/packages/babel-standalone/test/babel.js b/packages/babel-standalone/test/babel.js index e363e17fb5e1..d430d94ce113 100644 --- a/packages/babel-standalone/test/babel.js +++ b/packages/babel-standalone/test/babel.js @@ -64,7 +64,7 @@ const output = Babel.transform( "const someDiv =
{getMessage()}
", { - presets: ["react"], + presets: [["react", { runtime: "classic" }]], }, ).code; expect(output).toBe( diff --git a/scripts/integration-tests/e2e-create-react-app.sh b/scripts/integration-tests/e2e-create-react-app.sh index 277f3e93f96b..7922ac920b0d 100755 --- a/scripts/integration-tests/e2e-create-react-app.sh +++ b/scripts/integration-tests/e2e-create-react-app.sh @@ -23,8 +23,10 @@ cd tmp/create-react-app || exit # !!! WARNING !!! # create-react-app uses the useBuiltIns: true option of @babel/preset-react, -# removed in Babel 8.0.0. Comment it out until they upgrade their Babel version. -sed -i 's/useBuiltIns: true/\/\/ useBuiltIns: true/' packages/babel-preset-react-app/create.js +# removed in Babel 8.0.0. And it does not specify runtime option. The test will break on +# runtime: "automatic", default of Babel 8. +# This change replaces useBuiltIns: true with runtime: "classic" +sed -i 's/useBuiltIns: true/runtime: "classic"/' packages/babel-preset-react-app/create.js bump_deps="$PWD/../../utils/bump-babel-dependencies.js" node "$bump_deps"