Skip to content

Commit 3f3c221

Browse files
committed
Fix: Errors should not escape a hidden Activity (facebook#35074)
If an error is thrown inside a hidden Activity, it should not escape into the visible part of the UI. Conceptually, a hidden Activity boundary is not part of the current UI; it's the same as an unmounted tree, except for the fact that the state will be restored if it's later revealed. Fixes: - facebook#35073 DiffTrain build for [717e708](facebook@717e708)
1 parent e9b8f1c commit 3f3c221

File tree

21 files changed

+210
-163
lines changed

21 files changed

+210
-163
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.3.0-native-fb-38bdda1c-20251106
1+
19.3.0-native-fb-717e7084-20251107

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<9c373c14429bc2b2ace30f508cb89391>>
10+
* @generated SignedSource<<6c652de56908e279019e7f77983c02da>>
1111
*/
1212

1313
"use strict";
@@ -414,5 +414,5 @@ __DEV__ &&
414414
exports.useFormStatus = function () {
415415
return resolveDispatcher().useHostTransitionStatus();
416416
};
417-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
417+
exports.version = "19.3.0-native-fb-717e7084-20251107";
418418
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<b3d01a819f0aeefa027f1b9546adae75>>
10+
* @generated SignedSource<<bfac832e16c0ff20e5f048e1a755079c>>
1111
*/
1212

1313
"use strict";
@@ -209,4 +209,4 @@ exports.useFormState = function (action, initialState, permalink) {
209209
exports.useFormStatus = function () {
210210
return ReactSharedInternals.H.useHostTransitionStatus();
211211
};
212-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
212+
exports.version = "19.3.0-native-fb-717e7084-20251107";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<b3d01a819f0aeefa027f1b9546adae75>>
10+
* @generated SignedSource<<bfac832e16c0ff20e5f048e1a755079c>>
1111
*/
1212

1313
"use strict";
@@ -209,4 +209,4 @@ exports.useFormState = function (action, initialState, permalink) {
209209
exports.useFormStatus = function () {
210210
return ReactSharedInternals.H.useHostTransitionStatus();
211211
};
212-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
212+
exports.version = "19.3.0-native-fb-717e7084-20251107";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<9bfd8b7a7b736366a1dd73037162bc2d>>
10+
* @generated SignedSource<<03dc8a93a4749ca34a7dd33577f9d263>>
1111
*/
1212

1313
/*
@@ -10008,15 +10008,15 @@ __DEV__ &&
1000810008
!1
1000910009
);
1001010010
case 1:
10011+
returnFiber = sourceFiber.type;
10012+
error = sourceFiber.stateNode;
1001110013
if (
10012-
((returnFiber = sourceFiber.type),
10013-
(error = sourceFiber.stateNode),
1001410014
0 === (sourceFiber.flags & 128) &&
10015-
("function" === typeof returnFiber.getDerivedStateFromError ||
10016-
(null !== error &&
10017-
"function" === typeof error.componentDidCatch &&
10018-
(null === legacyErrorBoundariesThatAlreadyFailed ||
10019-
!legacyErrorBoundariesThatAlreadyFailed.has(error)))))
10015+
("function" === typeof returnFiber.getDerivedStateFromError ||
10016+
(null !== error &&
10017+
"function" === typeof error.componentDidCatch &&
10018+
(null === legacyErrorBoundariesThatAlreadyFailed ||
10019+
!legacyErrorBoundariesThatAlreadyFailed.has(error))))
1002010020
)
1002110021
return (
1002210022
(sourceFiber.flags |= 65536),
@@ -10032,6 +10032,10 @@ __DEV__ &&
1003210032
enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
1003310033
!1
1003410034
);
10035+
break;
10036+
case 22:
10037+
if (null !== sourceFiber.memoizedState)
10038+
return (sourceFiber.flags |= 65536), !1;
1003510039
}
1003610040
sourceFiber = sourceFiber.return;
1003710041
} while (null !== sourceFiber);
@@ -29860,11 +29864,11 @@ __DEV__ &&
2986029864
};
2986129865
(function () {
2986229866
var isomorphicReactPackageVersion = React.version;
29863-
if ("19.3.0-native-fb-38bdda1c-20251106" !== isomorphicReactPackageVersion)
29867+
if ("19.3.0-native-fb-717e7084-20251107" !== isomorphicReactPackageVersion)
2986429868
throw Error(
2986529869
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2986629870
(isomorphicReactPackageVersion +
29867-
"\n - react-dom: 19.3.0-native-fb-38bdda1c-20251106\nLearn more: https://react.dev/warnings/version-mismatch")
29871+
"\n - react-dom: 19.3.0-native-fb-717e7084-20251107\nLearn more: https://react.dev/warnings/version-mismatch")
2986829872
);
2986929873
})();
2987029874
("function" === typeof Map &&
@@ -29901,10 +29905,10 @@ __DEV__ &&
2990129905
!(function () {
2990229906
var internals = {
2990329907
bundleType: 1,
29904-
version: "19.3.0-native-fb-38bdda1c-20251106",
29908+
version: "19.3.0-native-fb-717e7084-20251107",
2990529909
rendererPackageName: "react-dom",
2990629910
currentDispatcherRef: ReactSharedInternals,
29907-
reconcilerVersion: "19.3.0-native-fb-38bdda1c-20251106"
29911+
reconcilerVersion: "19.3.0-native-fb-717e7084-20251107"
2990829912
};
2990929913
internals.overrideHookState = overrideHookState;
2991029914
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -30054,5 +30058,5 @@ __DEV__ &&
3005430058
listenToAllSupportedEvents(container);
3005530059
return new ReactDOMHydrationRoot(initialChildren);
3005630060
};
30057-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
30061+
exports.version = "19.3.0-native-fb-717e7084-20251107";
3005830062
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<76855c085a8c53c5a61398fce4c9d551>>
10+
* @generated SignedSource<<1f00f0a80575d5efa6aad36285e141ba>>
1111
*/
1212

1313
/*
@@ -6335,15 +6335,15 @@ function throwException(
63356335
!1
63366336
);
63376337
case 1:
6338+
returnFiber = sourceFiber.type;
6339+
wrapperError = sourceFiber.stateNode;
63386340
if (
6339-
((returnFiber = sourceFiber.type),
6340-
(wrapperError = sourceFiber.stateNode),
63416341
0 === (sourceFiber.flags & 128) &&
6342-
("function" === typeof returnFiber.getDerivedStateFromError ||
6343-
(null !== wrapperError &&
6344-
"function" === typeof wrapperError.componentDidCatch &&
6345-
(null === legacyErrorBoundariesThatAlreadyFailed ||
6346-
!legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))
6342+
("function" === typeof returnFiber.getDerivedStateFromError ||
6343+
(null !== wrapperError &&
6344+
"function" === typeof wrapperError.componentDidCatch &&
6345+
(null === legacyErrorBoundariesThatAlreadyFailed ||
6346+
!legacyErrorBoundariesThatAlreadyFailed.has(wrapperError))))
63476347
)
63486348
return (
63496349
(sourceFiber.flags |= 65536),
@@ -6359,6 +6359,10 @@ function throwException(
63596359
enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
63606360
!1
63616361
);
6362+
break;
6363+
case 22:
6364+
if (null !== sourceFiber.memoizedState)
6365+
return (sourceFiber.flags |= 65536), !1;
63626366
}
63636367
sourceFiber = sourceFiber.return;
63646368
} while (null !== sourceFiber);
@@ -17485,14 +17489,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1748517489
};
1748617490
var isomorphicReactPackageVersion$jscomp$inline_2037 = React.version;
1748717491
if (
17488-
"19.3.0-native-fb-38bdda1c-20251106" !==
17492+
"19.3.0-native-fb-717e7084-20251107" !==
1748917493
isomorphicReactPackageVersion$jscomp$inline_2037
1749017494
)
1749117495
throw Error(
1749217496
formatProdErrorMessage(
1749317497
527,
1749417498
isomorphicReactPackageVersion$jscomp$inline_2037,
17495-
"19.3.0-native-fb-38bdda1c-20251106"
17499+
"19.3.0-native-fb-717e7084-20251107"
1749617500
)
1749717501
);
1749817502
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17514,10 +17518,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1751417518
};
1751517519
var internals$jscomp$inline_2642 = {
1751617520
bundleType: 0,
17517-
version: "19.3.0-native-fb-38bdda1c-20251106",
17521+
version: "19.3.0-native-fb-717e7084-20251107",
1751817522
rendererPackageName: "react-dom",
1751917523
currentDispatcherRef: ReactSharedInternals,
17520-
reconcilerVersion: "19.3.0-native-fb-38bdda1c-20251106"
17524+
reconcilerVersion: "19.3.0-native-fb-717e7084-20251107"
1752117525
};
1752217526
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1752317527
var hook$jscomp$inline_2643 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17624,4 +17628,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1762417628
listenToAllSupportedEvents(container);
1762517629
return new ReactDOMHydrationRoot(initialChildren);
1762617630
};
17627-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
17631+
exports.version = "19.3.0-native-fb-717e7084-20251107";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<cd64d702fa7096529a6a683819c923b2>>
10+
* @generated SignedSource<<ee284926c4ddbc72bc36ac19eb9bae25>>
1111
*/
1212

1313
/*
@@ -6816,15 +6816,15 @@ function throwException(
68166816
!1
68176817
);
68186818
case 1:
6819+
returnFiber = sourceFiber.type;
6820+
wrapperError = sourceFiber.stateNode;
68196821
if (
6820-
((returnFiber = sourceFiber.type),
6821-
(wrapperError = sourceFiber.stateNode),
68226822
0 === (sourceFiber.flags & 128) &&
6823-
("function" === typeof returnFiber.getDerivedStateFromError ||
6824-
(null !== wrapperError &&
6825-
"function" === typeof wrapperError.componentDidCatch &&
6826-
(null === legacyErrorBoundariesThatAlreadyFailed ||
6827-
!legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))
6823+
("function" === typeof returnFiber.getDerivedStateFromError ||
6824+
(null !== wrapperError &&
6825+
"function" === typeof wrapperError.componentDidCatch &&
6826+
(null === legacyErrorBoundariesThatAlreadyFailed ||
6827+
!legacyErrorBoundariesThatAlreadyFailed.has(wrapperError))))
68286828
)
68296829
return (
68306830
(sourceFiber.flags |= 65536),
@@ -6840,6 +6840,10 @@ function throwException(
68406840
enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
68416841
!1
68426842
);
6843+
break;
6844+
case 22:
6845+
if (null !== sourceFiber.memoizedState)
6846+
return (sourceFiber.flags |= 65536), !1;
68436847
}
68446848
sourceFiber = sourceFiber.return;
68456849
} while (null !== sourceFiber);
@@ -19589,14 +19593,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1958919593
};
1959019594
var isomorphicReactPackageVersion$jscomp$inline_2352 = React.version;
1959119595
if (
19592-
"19.3.0-native-fb-38bdda1c-20251106" !==
19596+
"19.3.0-native-fb-717e7084-20251107" !==
1959319597
isomorphicReactPackageVersion$jscomp$inline_2352
1959419598
)
1959519599
throw Error(
1959619600
formatProdErrorMessage(
1959719601
527,
1959819602
isomorphicReactPackageVersion$jscomp$inline_2352,
19599-
"19.3.0-native-fb-38bdda1c-20251106"
19603+
"19.3.0-native-fb-717e7084-20251107"
1960019604
)
1960119605
);
1960219606
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19618,10 +19622,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1961819622
};
1961919623
var internals$jscomp$inline_2359 = {
1962019624
bundleType: 0,
19621-
version: "19.3.0-native-fb-38bdda1c-20251106",
19625+
version: "19.3.0-native-fb-717e7084-20251107",
1962219626
rendererPackageName: "react-dom",
1962319627
currentDispatcherRef: ReactSharedInternals,
19624-
reconcilerVersion: "19.3.0-native-fb-38bdda1c-20251106",
19628+
reconcilerVersion: "19.3.0-native-fb-717e7084-20251107",
1962519629
getLaneLabelMap: function () {
1962619630
for (
1962719631
var map = new Map(), lane = 1, index$326 = 0;
@@ -19744,4 +19748,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1974419748
listenToAllSupportedEvents(container);
1974519749
return new ReactDOMHydrationRoot(initialChildren);
1974619750
};
19747-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
19751+
exports.version = "19.3.0-native-fb-717e7084-20251107";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<e3b57c551ca4b6acc34ca069c6bb2dc1>>
10+
* @generated SignedSource<<de1495715877eac35562875a88322398>>
1111
*/
1212

1313
/*
@@ -10016,15 +10016,15 @@ __DEV__ &&
1001610016
!1
1001710017
);
1001810018
case 1:
10019+
returnFiber = sourceFiber.type;
10020+
error = sourceFiber.stateNode;
1001910021
if (
10020-
((returnFiber = sourceFiber.type),
10021-
(error = sourceFiber.stateNode),
1002210022
0 === (sourceFiber.flags & 128) &&
10023-
("function" === typeof returnFiber.getDerivedStateFromError ||
10024-
(null !== error &&
10025-
"function" === typeof error.componentDidCatch &&
10026-
(null === legacyErrorBoundariesThatAlreadyFailed ||
10027-
!legacyErrorBoundariesThatAlreadyFailed.has(error)))))
10023+
("function" === typeof returnFiber.getDerivedStateFromError ||
10024+
(null !== error &&
10025+
"function" === typeof error.componentDidCatch &&
10026+
(null === legacyErrorBoundariesThatAlreadyFailed ||
10027+
!legacyErrorBoundariesThatAlreadyFailed.has(error))))
1002810028
)
1002910029
return (
1003010030
(sourceFiber.flags |= 65536),
@@ -10040,6 +10040,10 @@ __DEV__ &&
1004010040
enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
1004110041
!1
1004210042
);
10043+
break;
10044+
case 22:
10045+
if (null !== sourceFiber.memoizedState)
10046+
return (sourceFiber.flags |= 65536), !1;
1004310047
}
1004410048
sourceFiber = sourceFiber.return;
1004510049
} while (null !== sourceFiber);
@@ -29916,11 +29920,11 @@ __DEV__ &&
2991629920
};
2991729921
(function () {
2991829922
var isomorphicReactPackageVersion = React.version;
29919-
if ("19.3.0-native-fb-38bdda1c-20251106" !== isomorphicReactPackageVersion)
29923+
if ("19.3.0-native-fb-717e7084-20251107" !== isomorphicReactPackageVersion)
2992029924
throw Error(
2992129925
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2992229926
(isomorphicReactPackageVersion +
29923-
"\n - react-dom: 19.3.0-native-fb-38bdda1c-20251106\nLearn more: https://react.dev/warnings/version-mismatch")
29927+
"\n - react-dom: 19.3.0-native-fb-717e7084-20251107\nLearn more: https://react.dev/warnings/version-mismatch")
2992429928
);
2992529929
})();
2992629930
("function" === typeof Map &&
@@ -29957,10 +29961,10 @@ __DEV__ &&
2995729961
!(function () {
2995829962
var internals = {
2995929963
bundleType: 1,
29960-
version: "19.3.0-native-fb-38bdda1c-20251106",
29964+
version: "19.3.0-native-fb-717e7084-20251107",
2996129965
rendererPackageName: "react-dom",
2996229966
currentDispatcherRef: ReactSharedInternals,
29963-
reconcilerVersion: "19.3.0-native-fb-38bdda1c-20251106"
29967+
reconcilerVersion: "19.3.0-native-fb-717e7084-20251107"
2996429968
};
2996529969
internals.overrideHookState = overrideHookState;
2996629970
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -30440,7 +30444,7 @@ __DEV__ &&
3044030444
exports.useFormStatus = function () {
3044130445
return resolveDispatcher().useHostTransitionStatus();
3044230446
};
30443-
exports.version = "19.3.0-native-fb-38bdda1c-20251106";
30447+
exports.version = "19.3.0-native-fb-717e7084-20251107";
3044430448
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
3044530449
"function" ===
3044630450
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)