@samitouri / QOS-React / commits / 9eba80825f

Unify branches in cloneFiber (#7723)

Ben Alpert committed Sep 13, 2016 at 17:42 UTC 9eba80825f0931794e4553db1806e78de3a218de
1 file changed +9 -21
src/renderers/shared/fiber/ReactFiber.js
+9 -21
@@ -198,30 +198,23 @@ exports.cloneFiber = function(fiber : Fiber, priorityLevel : PriorityLevel) : Fi
198 // extra memory if needed.
199 let alt = fiber.alternate;
200 if (alt) {
201 - alt.stateNode = fiber.stateNode;
202 - alt.sibling = fiber.sibling; // This should always be overridden. TODO: null
203 - alt.ref = fiber.ref;
204 - alt.pendingProps = fiber.pendingProps; // TODO: Pass as argument.
205 - alt.updateQueue = fiber.updateQueue;
206 - alt.callbackList = fiber.callbackList;
207 - alt.pendingWorkPriority = priorityLevel;
208 -
209 - alt.child = fiber.child;
210 - alt.memoizedProps = fiber.memoizedProps;
211 - alt.output = fiber.output;
212 -
201 // Whenever we clone, we do so to get a new work in progress.
202 // This ensures that we've reset these in the new tree.
203 alt.nextEffect = null;
204 alt.firstEffect = null;
205 alt.lastEffect = null;
206 + } else {
207 + // This should not have an alternate already
208 + alt = createFiber(fiber.tag, fiber.key);
209 + alt.type = fiber.type;
210
219 - return alt;
211 + alt.progressedChild = fiber.progressedChild;
212 + alt.progressedPriority = fiber.progressedPriority;
213 +
214 + alt.alternate = fiber;
215 + fiber.alternate = alt;
216 }
217
222 - // This should not have an alternate already
223 - alt = createFiber(fiber.tag, fiber.key);
224 - alt.type = fiber.type;
218 alt.stateNode = fiber.stateNode;
219 alt.child = fiber.child;
220 alt.sibling = fiber.sibling; // This should always be overridden. TODO: null
@@ -236,11 +229,6 @@ exports.cloneFiber = function(fiber : Fiber, priorityLevel : PriorityLevel) : Fi
229 alt.memoizedProps = fiber.memoizedProps;
230 alt.output = fiber.output;
231
239 - alt.progressedChild = fiber.progressedChild;
240 - alt.progressedPriority = fiber.progressedPriority;
241 -
242 - alt.alternate = fiber;
243 - fiber.alternate = alt;
232 return alt;
233 };
234