De-duplicate commitUpdateQueue effect commit (#13403)
Ruud Burger committed
Aug 15, 2018 at 20:21 UTC
5816829170662eed09e9681ce387d5672fc3da31
1 file changed
+8
-10
packages/react-reconciler/src/ReactUpdateQueue.js
+8
-10
@@ -599,19 +599,17 @@ export function commitUpdateQueue<State>(
599
}
600
601
// Commit the effects
602
- let effect = finishedQueue.firstEffect;
602
+ commitUpdateEffects(finishedQueue.firstEffect, instance);
603
finishedQueue.firstEffect = finishedQueue.lastEffect = null;
604
- while (effect !== null) {
605
- const callback = effect.callback;
606
- if (callback !== null) {
607
- effect.callback = null;
608
- callCallback(callback, instance);
609
- }
610
- effect = effect.nextEffect;
611
- }
604
613
- effect = finishedQueue.firstCapturedEffect;
605
+ commitUpdateEffects(finishedQueue.firstCapturedEffect, instance);
606
finishedQueue.firstCapturedEffect = finishedQueue.lastCapturedEffect = null;
607
+}
608
+
609
+function commitUpdateEffects<State>(
610
+ effect: Update<State> | null,
611
+ instance: any,
612
+): void {
613
while (effect !== null) {
614
const callback = effect.callback;
615
if (callback !== null) {