[compiler] Fix for scopes with unreachable fallthroughs (#34335)

Fixes #34108. If a scope ends with with a conditional where some/all
branches exit via labeled break, we currently compile in a way that
works but bypasses memoization. We end up with a shape like

```js
let t0;
label: {
 if (changed) {
   ...
   if (cond) {
     t0 = ...;
     break label;
   }
   // we don't save the output if the break happens!
   t0 = ...;
   $[0] = t0;
 } else {
   t0 = $[0];
}
```

The fix here is to update AlignReactiveScopesToBlockScopes to take
account of breaks that don't go to the natural fallthrough. In this
case, we take any active scopes and extend them to start at least as
early as the label, and extend at least to the label fallthrough. Thus
we produce the correct:

```js
let t0;
if (changed) {
  label: {
    ...
    if (cond) {
      t0 = ...;
      break label;
    }
    t0 = ...;
  }
  // now the break jumps here, and we cache the value
  $[0] = t0;
} else {
  t0 = $[0];
}
```

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/facebook/react/pull/34335).
* #34347
* #34346
* #34343
* __->__ #34335

DiffTrain build for [5d64f74211](https://github.com/facebook/react/commit/5d64f742114203e4fbdd605ce398696d18901f35)
This commit is contained in:
josephsavona
2025-09-03 17:51:03 -07:00
parent 12c6a751b3
commit 4a2aee93b0
26 changed files with 119 additions and 91 deletions
+1 -1
View File
@@ -1 +1 @@
19.2.0-native-fb-3302d1f7-20250903
19.2.0-native-fb-5d64f742-20250903
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<56ac6a5f9e0a15495324372ea00e8858>>
* @generated SignedSource<<284b800cfd709e3980dc13f48703e487>>
*/
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<73920b47ab48258a511372994a8afedd>>
* @generated SignedSource<<a38ddfea77db84745032f66564839caf>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<73920b47ab48258a511372994a8afedd>>
* @generated SignedSource<<a38ddfea77db84745032f66564839caf>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<b0df9ed12a0543af9a334a06c62e59db>>
* @generated SignedSource<<446d46f3693ceab0a9e8880c897584ae>>
*/
/*
@@ -29580,11 +29580,11 @@ __DEV__ &&
};
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-3302d1f7-20250903" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-5d64f742-20250903" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-native-fb-3302d1f7-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-native-fb-5d64f742-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -29621,10 +29621,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -29773,5 +29773,5 @@ __DEV__ &&
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<145774a31461bc1e01f4c25468795fd9>>
* @generated SignedSource<<d948d548beb25a8668350e189f3f9b70>>
*/
/*
@@ -17388,14 +17388,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2057 = React.version;
if (
"19.2.0-native-fb-3302d1f7-20250903" !==
"19.2.0-native-fb-5d64f742-20250903" !==
isomorphicReactPackageVersion$jscomp$inline_2057
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2057,
"19.2.0-native-fb-3302d1f7-20250903"
"19.2.0-native-fb-5d64f742-20250903"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17417,10 +17417,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2630 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2631 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17527,4 +17527,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<bd95a2b13d723e69c1130eb341ac565e>>
* @generated SignedSource<<0609c334d320a63e957a47f290999130>>
*/
/*
@@ -19398,14 +19398,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2308 = React.version;
if (
"19.2.0-native-fb-3302d1f7-20250903" !==
"19.2.0-native-fb-5d64f742-20250903" !==
isomorphicReactPackageVersion$jscomp$inline_2308
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2308,
"19.2.0-native-fb-3302d1f7-20250903"
"19.2.0-native-fb-5d64f742-20250903"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19427,10 +19427,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2315 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903",
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$324 = 0;
@@ -19553,4 +19553,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<77c665da4956b869c0b08c690c578f3a>>
* @generated SignedSource<<e7d32ab082fd2b006b748e04d928c908>>
*/
/*
@@ -29636,11 +29636,11 @@ __DEV__ &&
};
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-3302d1f7-20250903" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-5d64f742-20250903" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-native-fb-3302d1f7-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-native-fb-5d64f742-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -29677,10 +29677,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -30145,7 +30145,7 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<e03d771ab70cccdd1696e3d238c6905f>>
* @generated SignedSource<<8ff888c7d59f199a09717bd524ffd012>>
*/
/*
@@ -17399,14 +17399,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2058 = React.version;
if (
"19.2.0-native-fb-3302d1f7-20250903" !==
"19.2.0-native-fb-5d64f742-20250903" !==
isomorphicReactPackageVersion$jscomp$inline_2058
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2058,
"19.2.0-native-fb-3302d1f7-20250903"
"19.2.0-native-fb-5d64f742-20250903"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17428,10 +17428,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2633 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2634 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17691,4 +17691,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<0cd6d29cdbd08a99a079784f98360acd>>
* @generated SignedSource<<6d1419371baad9f661e9eebd4c1ecfa8>>
*/
/*
@@ -19413,14 +19413,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2309 = React.version;
if (
"19.2.0-native-fb-3302d1f7-20250903" !==
"19.2.0-native-fb-5d64f742-20250903" !==
isomorphicReactPackageVersion$jscomp$inline_2309
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2309,
"19.2.0-native-fb-3302d1f7-20250903"
"19.2.0-native-fb-5d64f742-20250903"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19442,10 +19442,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2316 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903",
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$324 = 0;
@@ -19721,7 +19721,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<daa35f165661650f1df391e664c39f79>>
* @generated SignedSource<<ec4fd3e1905c551c9a7f0dc8944007c0>>
*/
"use strict";
@@ -15881,10 +15881,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -16029,5 +16029,5 @@ __DEV__ &&
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<197d442575fa47eca5b3fa1d10c3c225>>
* @generated SignedSource<<067bdd0424fb2389e6b6565c019f3d68>>
*/
"use strict";
@@ -10045,10 +10045,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1469 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1470 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10184,4 +10184,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<b0915ed4833b8adcd7a08a3635df3670>>
* @generated SignedSource<<96b875d2f0715e8b70f8c7aadcbdd0a3>>
*/
"use strict";
@@ -10666,10 +10666,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1260 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903",
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$145 = 0;
@@ -10820,4 +10820,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<5b33fb6b7477418f121d9cc82773830b>>
* @generated SignedSource<<74211edef9d4a787984e705b512f0084>>
*/
"use strict";
@@ -1397,7 +1397,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<81bbdd3b7a073c033fd3d4c0607ec162>>
* @generated SignedSource<<227582aea73687da1d2fadce1db32445>>
*/
"use strict";
@@ -579,4 +579,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<14c722580ed085ee4bfaed01e05c9d70>>
* @generated SignedSource<<be21efe133512f36d214229550af8887>>
*/
"use strict";
@@ -583,7 +583,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-native-fb-3302d1f7-20250903";
exports.version = "19.2.0-native-fb-5d64f742-20250903";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -1 +1 @@
3302d1f791f3f1cf4e8cf69bee70ce5dab1b8436
5d64f742114203e4fbdd605ce398696d18901f35
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<1b61de97108d23e7c35984e9f41687fc>>
* @generated SignedSource<<41c4179e4e7894e4d873807e1f16f42b>>
*/
"use strict";
@@ -19705,10 +19705,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<d899ea4b670ef23ae08e5372523a40c6>>
* @generated SignedSource<<ad670b0d8193527757290355416b501d>>
*/
"use strict";
@@ -11211,10 +11211,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1281 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1281.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<669096622353e008bd65ad455fc7f18f>>
* @generated SignedSource<<7b73add46f162166302881a22ee414ea>>
*/
"use strict";
@@ -13162,10 +13162,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1525 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1525.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<9014601fc80d67edcd1dba6212205e2b>>
* @generated SignedSource<<98f8bfab01fbf2a50e530d2edc7823c0>>
*/
"use strict";
@@ -19985,11 +19985,11 @@ __DEV__ &&
shouldSuspendImpl = newShouldSuspendImpl;
};
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-3302d1f7-20250903" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-5d64f742-20250903" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-3302d1f7-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-5d64f742-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -20015,10 +20015,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<b99b29da0ffeeb2b1e856f6d724d926d>>
* @generated SignedSource<<b1daf8b878b160530c53d66d15b1536e>>
*/
"use strict";
@@ -11370,11 +11370,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-3302d1f7-20250903" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-5d64f742-20250903" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-3302d1f7-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-5d64f742-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -11424,10 +11424,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1312 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1312.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<f9e627a3a86be4d9ad6512418ac40f00>>
* @generated SignedSource<<6fd187499582bbb7d1ac351316167a23>>
*/
"use strict";
@@ -13311,11 +13311,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-3302d1f7-20250903" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-5d64f742-20250903" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-3302d1f7-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-5d64f742-20250903\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -13365,10 +13365,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1556 = {
bundleType: 0,
version: "19.2.0-native-fb-3302d1f7-20250903",
version: "19.2.0-native-fb-5d64f742-20250903",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-3302d1f7-20250903"
reconcilerVersion: "19.2.0-native-fb-5d64f742-20250903"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1556.rendererConfig = extraDevToolsConfig);
@@ -12,7 +12,7 @@
* @lightSyntaxTransform
* @preventMunge
* @oncall react_core
* @generated SignedSource<<92021fc3beead9e56f852b5daa23438d>>
* @generated SignedSource<<f60050ed6936d3ae8462c48b060132fd>>
*/
'use strict';
@@ -45882,7 +45882,7 @@ function alignMethodCallScopes(fn) {
}
function alignReactiveScopesToBlockScopesHIR(fn) {
var _a, _b, _c, _d, _e;
var _a, _b, _c, _d, _e, _f, _g;
const activeBlockFallthroughRanges = [];
const activeScopes = new Set();
const seen = new Set();
@@ -45954,6 +45954,20 @@ function alignReactiveScopesToBlockScopesHIR(fn) {
valueBlockNodes.set(fallthrough, node);
}
}
else if (terminal.kind === 'goto') {
const start = activeBlockFallthroughRanges.find(range => range.fallthrough === terminal.block);
if (start != null && start !== activeBlockFallthroughRanges.at(-1)) {
const fallthroughBlock = fn.body.blocks.get(start.fallthrough);
const firstId = (_g = (_f = fallthroughBlock.instructions[0]) === null || _f === void 0 ? void 0 : _f.id) !== null && _g !== void 0 ? _g : fallthroughBlock.terminal.id;
for (const scope of activeScopes) {
if (scope.range.end <= terminal.id) {
continue;
}
scope.range.start = makeInstructionId(Math.min(start.range.start, scope.range.start));
scope.range.end = makeInstructionId(Math.max(firstId, scope.range.end));
}
}
}
mapTerminalSuccessors(terminal, successor => {
var _a, _b;
if (valueBlockNodes.has(successor)) {
@@ -6,7 +6,7 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @generated SignedSource<<99d6960a9525c443d8865ab7661a6fcc>>
* @generated SignedSource<<35e4d9cfd8648bf600caf5bafab7d488>>
*/
'use strict';
@@ -45661,7 +45661,7 @@ function alignMethodCallScopes(fn) {
}
function alignReactiveScopesToBlockScopesHIR(fn) {
var _a, _b, _c, _d, _e;
var _a, _b, _c, _d, _e, _f, _g;
const activeBlockFallthroughRanges = [];
const activeScopes = new Set();
const seen = new Set();
@@ -45733,6 +45733,20 @@ function alignReactiveScopesToBlockScopesHIR(fn) {
valueBlockNodes.set(fallthrough, node);
}
}
else if (terminal.kind === 'goto') {
const start = activeBlockFallthroughRanges.find(range => range.fallthrough === terminal.block);
if (start != null && start !== activeBlockFallthroughRanges.at(-1)) {
const fallthroughBlock = fn.body.blocks.get(start.fallthrough);
const firstId = (_g = (_f = fallthroughBlock.instructions[0]) === null || _f === void 0 ? void 0 : _f.id) !== null && _g !== void 0 ? _g : fallthroughBlock.terminal.id;
for (const scope of activeScopes) {
if (scope.range.end <= terminal.id) {
continue;
}
scope.range.start = makeInstructionId(Math.min(start.range.start, scope.range.start));
scope.range.end = makeInstructionId(Math.max(firstId, scope.range.end));
}
}
}
mapTerminalSuccessors(terminal, successor => {
var _a, _b;
if (valueBlockNodes.has(successor)) {
@@ -1,7 +1,7 @@
{
"name": "eslint-plugin-react-hooks",
"description": "ESLint rules for React Hooks",
"version": "0.0.0-experimental-3302d1f7-20250903",
"version": "0.0.0-experimental-5d64f742-20250903",
"repository": {
"type": "git",
"url": "https://github.com/facebook/react.git",