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