[Fizz] Don't double replay elements when it's the postpone point (#27440)

The `resumeElement` function wasn't actually doing the correct thing
because it was resuming the element itself but what the child slot means
is that we're supposed to resume in the direct child of the element.
This is difficult to check for since it's all the possible branches that
the element can render into, so instead we just check this in
renderNode. It means the hottest path always checks the task which is
unfortunate.

And also, resuming using the correct nextSegmentId.

Fixes two bugs surfaced by this test.

---------

Co-authored-by: Josh Story <josh.c.story@gmail.com>

DiffTrain build for commit https://github.com/facebook/react/commit/a6ed60a8eb0626e5f84d0bdbb62c0b61219150d3.
This commit is contained in:
sebmarkbage
2023-09-29 22:29:20 +00:00
parent 65aa775d24
commit 6f57bac646
7 changed files with 9 additions and 9 deletions
@@ -23997,7 +23997,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-canary-c7ba8c098-20230929";
var ReactVersion = "18.3.0-canary-a6ed60a8e-20230929";
// Might add PROFILE later.
@@ -8623,7 +8623,7 @@ var devToolsConfig$jscomp$inline_1030 = {
throw Error("TestRenderer does not support findFiberByHostInstance()");
},
bundleType: 0,
version: "18.3.0-canary-c7ba8c098-20230929",
version: "18.3.0-canary-a6ed60a8e-20230929",
rendererPackageName: "react-test-renderer"
};
var internals$jscomp$inline_1229 = {
@@ -8654,7 +8654,7 @@ var internals$jscomp$inline_1229 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-canary-c7ba8c098-20230929"
reconcilerVersion: "18.3.0-canary-a6ed60a8e-20230929"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1230 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -9049,7 +9049,7 @@ var devToolsConfig$jscomp$inline_1072 = {
throw Error("TestRenderer does not support findFiberByHostInstance()");
},
bundleType: 0,
version: "18.3.0-canary-c7ba8c098-20230929",
version: "18.3.0-canary-a6ed60a8e-20230929",
rendererPackageName: "react-test-renderer"
};
var internals$jscomp$inline_1270 = {
@@ -9080,7 +9080,7 @@ var internals$jscomp$inline_1270 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-canary-c7ba8c098-20230929"
reconcilerVersion: "18.3.0-canary-a6ed60a8e-20230929"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1271 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -27,7 +27,7 @@ if (
}
"use strict";
var ReactVersion = "18.3.0-canary-c7ba8c098-20230929";
var ReactVersion = "18.3.0-canary-a6ed60a8e-20230929";
// ATTENTION
// When adding new symbols to this file,
@@ -616,4 +616,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactCurrentDispatcher.current.useTransition();
};
exports.version = "18.3.0-canary-c7ba8c098-20230929";
exports.version = "18.3.0-canary-a6ed60a8e-20230929";
@@ -619,7 +619,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactCurrentDispatcher.current.useTransition();
};
exports.version = "18.3.0-canary-c7ba8c098-20230929";
exports.version = "18.3.0-canary-a6ed60a8e-20230929";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -1 +1 @@
c7ba8c098889b6dc47fa9c807bbba3975a658584
a6ed60a8eb0626e5f84d0bdbb62c0b61219150d3