Skip to content

Commit b401f2b

Browse files
dannysufacebook-github-bot
authored andcommitted
Enable regenerator for Hermes dev mode transform profile
Summary: Changelog: [Internal] Differential Revision: D78450695
1 parent 21cd09d commit b401f2b

File tree

1 file changed

+9
-14
lines changed
  • packages/react-native-babel-preset/src/configs

1 file changed

+9
-14
lines changed

packages/react-native-babel-preset/src/configs/main.js

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,6 @@ const defaultPlugins = [
5151
[require('@babel/plugin-transform-unicode-regex')],
5252
];
5353

54-
// For Static Hermes testing (experimental), the hermes-canary transformProfile
55-
// is used to enable regenerator (and some related lowering passes) because SH
56-
// requires more Babel lowering than Hermes temporarily.
5754
const getPreset = (src, options) => {
5855
const transformProfile =
5956
(options && options.unstable_transformProfile) || 'default';
@@ -124,8 +121,8 @@ const getPreset = (src, options) => {
124121
extraPlugins.push([
125122
require('@babel/plugin-transform-named-capturing-groups-regex'),
126123
]);
127-
// Needed for regenerator for hermes-canary
128-
if (isHermesCanary) {
124+
// Needed for regenerator
125+
if (isHermes && options.dev) {
129126
extraPlugins.push([
130127
require('@babel/plugin-transform-optional-catch-binding'),
131128
]);
@@ -158,17 +155,15 @@ const getPreset = (src, options) => {
158155
) {
159156
extraPlugins.push([require('@babel/plugin-transform-react-display-name')]);
160157
}
161-
// Check !isHermesStable because this is needed for regenerator for
162-
// hermes-canary
163-
if (!isHermesStable && (isNull || src.indexOf('?.') !== -1)) {
158+
// Also check options.dev because this is needed for regenerator
159+
if ((!isHermes || options.dev) && (isNull || src.indexOf('?.') !== -1)) {
164160
extraPlugins.push([
165161
require('@babel/plugin-transform-optional-chaining'),
166162
{loose: true},
167163
]);
168164
}
169-
// Check !isHermesStable because this is needed for regenerator for
170-
// hermes-canary
171-
if (!isHermesStable && (isNull || src.indexOf('??') !== -1)) {
165+
// Also check options.dev because this is needed for regenerator
166+
if ((!isHermes || options.dev) && (isNull || src.indexOf('??') !== -1)) {
172167
extraPlugins.push([
173168
require('@babel/plugin-transform-nullish-coalescing-operator'),
174169
{loose: true},
@@ -196,7 +191,7 @@ const getPreset = (src, options) => {
196191
extraPlugins.push([require('@babel/plugin-transform-react-jsx-self')]);
197192
}
198193

199-
if (isHermesCanary) {
194+
if (isHermes && options.dev) {
200195
const hasForOf =
201196
isNull || (src.indexOf('for') !== -1 && src.indexOf('of') !== -1);
202197
if (hasForOf) {
@@ -216,11 +211,11 @@ const getPreset = (src, options) => {
216211
require('@babel/plugin-transform-runtime'),
217212
{
218213
helpers: true,
219-
regenerator: !isHermesStable,
214+
regenerator: !isHermes || options.dev,
220215
...(isVersion && {version: options.enableBabelRuntime}),
221216
},
222217
]);
223-
} else if (isHermesCanary) {
218+
} else if (isHermes && options.dev) {
224219
extraPlugins.push([require('@babel/plugin-transform-regenerator')]);
225220
}
226221

0 commit comments

Comments
 (0)