From df61e708c82134133e002f8559c19d4897204b54 Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Thu, 3 Nov 2022 13:15:55 -0700 Subject: [PATCH] Remove check in renderDidSuspendDelayIfPossible (#25630) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I don't think we need this anymore. It was added originally because RootSuspended would take priority over RootSuspendedWithDelay. But we've since changed it: any "bad" fallback state is permitted to block a "good" fallback state. The other status flags that this check used to account for are RootDidNotComplete and RootFatalErrored: - RootFatalErrored is like an invariant violation, it means something went really wrong already and we can't recover from it - RootCompleted and RootDidNotComplete are only set at the very end of the work loop, there's no way for renderDidSuspendDelayIfPossible to sneak in after that (at least none that I can think of — it's only called from the render phase) So I think we can just delete this. It's entirely possible there's some scenario I haven't considered, though, which is why I'm submitting this change as its own PR. To preserve the ability to bisect to it later. --- packages/react-reconciler/src/ReactFiberWorkLoop.new.js | 8 +------- packages/react-reconciler/src/ReactFiberWorkLoop.old.js | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js index 1eac6957f4e8b..a2fa1f6ae9c3f 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js @@ -1926,13 +1926,7 @@ export function renderDidSuspend(): void { } export function renderDidSuspendDelayIfPossible(): void { - if ( - workInProgressRootExitStatus === RootInProgress || - workInProgressRootExitStatus === RootSuspended || - workInProgressRootExitStatus === RootErrored - ) { - workInProgressRootExitStatus = RootSuspendedWithDelay; - } + workInProgressRootExitStatus = RootSuspendedWithDelay; // Check if there are updates that we skipped tree that might have unblocked // this render. diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.old.js b/packages/react-reconciler/src/ReactFiberWorkLoop.old.js index 0b62d0f2a3099..f08ae039c5b14 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.old.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.old.js @@ -1926,13 +1926,7 @@ export function renderDidSuspend(): void { } export function renderDidSuspendDelayIfPossible(): void { - if ( - workInProgressRootExitStatus === RootInProgress || - workInProgressRootExitStatus === RootSuspended || - workInProgressRootExitStatus === RootErrored - ) { - workInProgressRootExitStatus = RootSuspendedWithDelay; - } + workInProgressRootExitStatus = RootSuspendedWithDelay; // Check if there are updates that we skipped tree that might have unblocked // this render.