diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.js b/packages/react-reconciler/src/ReactFiberWorkLoop.js index 24420f9ebebbf..1151e92a0cf22 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.js @@ -247,6 +247,8 @@ let pendingPassiveHookEffectsMount: Array = []; let pendingPassiveHookEffectsUnmount: Array = []; let pendingPassiveProfilerEffects: Array = []; +let testFibers = []; + let rootsWithPendingDiscreteUpdates: Map< FiberRoot, ExpirationTime, @@ -1972,6 +1974,13 @@ function commitRootImpl(root, renderPriorityLevel) { nextEffect.nextEffect = null; nextEffect = nextNextEffect; } + for (let i = 0; i < testFibers.length; i++) { + if (testFibers[i].nextEffect !== null) { + // Leave this in to test it + debugger; + } + } + testFibers = []; } // Check if there's remaining work on this root @@ -2137,6 +2146,7 @@ function commitMutationEffects(root: FiberRoot, renderPriorityLevel) { } case Deletion: { commitDeletion(root, nextEffect, renderPriorityLevel); + testFibers.push(nextEffect); break; } } @@ -2273,6 +2283,8 @@ function flushPassiveEffectsImpl() { for (let i = 0; i < unmountEffects.length; i += 2) { const effect = ((unmountEffects[i]: any): HookEffect); const fiber = ((unmountEffects[i + 1]: any): Fiber); + // Remove nextEffect pointer to assist GC + fiber.nextEffect = null; const destroy = effect.destroy; effect.destroy = undefined; if (typeof destroy === 'function') { @@ -2324,6 +2336,8 @@ function flushPassiveEffectsImpl() { for (let i = 0; i < mountEffects.length; i += 2) { const effect = ((mountEffects[i]: any): HookEffect); const fiber = ((mountEffects[i + 1]: any): Fiber); + // Remove nextEffect pointer to assist GC + fiber.nextEffect = null; if (__DEV__) { setCurrentDebugFiberInDEV(fiber); if (