From 1d93d284944488eaefd523f281a0f2e627158e82 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Tue, 13 Sep 2016 17:42:15 -0700 Subject: [PATCH] Unify branches in cloneFiber (#7723) (cherry picked from commit 9eba80825f0931794e4553db1806e78de3a218de) --- src/renderers/shared/fiber/ReactFiber.js | 30 +++++++----------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/renderers/shared/fiber/ReactFiber.js b/src/renderers/shared/fiber/ReactFiber.js index 7dadfbe47a..a733909551 100644 --- a/src/renderers/shared/fiber/ReactFiber.js +++ b/src/renderers/shared/fiber/ReactFiber.js @@ -198,30 +198,23 @@ exports.cloneFiber = function(fiber : Fiber, priorityLevel : PriorityLevel) : Fi // extra memory if needed. let alt = fiber.alternate; if (alt) { - alt.stateNode = fiber.stateNode; - alt.sibling = fiber.sibling; // This should always be overridden. TODO: null - alt.ref = fiber.ref; - alt.pendingProps = fiber.pendingProps; // TODO: Pass as argument. - alt.updateQueue = fiber.updateQueue; - alt.callbackList = fiber.callbackList; - alt.pendingWorkPriority = priorityLevel; - - alt.child = fiber.child; - alt.memoizedProps = fiber.memoizedProps; - alt.output = fiber.output; - // Whenever we clone, we do so to get a new work in progress. // This ensures that we've reset these in the new tree. alt.nextEffect = null; alt.firstEffect = null; alt.lastEffect = null; + } else { + // This should not have an alternate already + alt = createFiber(fiber.tag, fiber.key); + alt.type = fiber.type; - return alt; + alt.progressedChild = fiber.progressedChild; + alt.progressedPriority = fiber.progressedPriority; + + alt.alternate = fiber; + fiber.alternate = alt; } - // This should not have an alternate already - alt = createFiber(fiber.tag, fiber.key); - alt.type = fiber.type; alt.stateNode = fiber.stateNode; alt.child = fiber.child; alt.sibling = fiber.sibling; // This should always be overridden. TODO: null @@ -236,11 +229,6 @@ exports.cloneFiber = function(fiber : Fiber, priorityLevel : PriorityLevel) : Fi alt.memoizedProps = fiber.memoizedProps; alt.output = fiber.output; - alt.progressedChild = fiber.progressedChild; - alt.progressedPriority = fiber.progressedPriority; - - alt.alternate = fiber; - fiber.alternate = alt; return alt; };