Commit a155860
authored
Fix: Don't flush discrete at end of batchedUpdates (#21229)
The outermost `batchedUpdates` call flushes pending sync updates at the
end. This was intended for legacy sync mode, but it also happens to
flush discrete updates in concurrent mode.
Instead, we should only flush sync updates at the end of
`batchedUpdates` for legacy roots. Discrete sync updates can wait to
flush in the microtask.
`discreteUpdates` has the same issue, which is how I originally noticed
this, but I'll change that one in a separate commit since it requires
updating a few (no longer relevant) internal tests.1 parent 89847bf commit a155860
File tree
8 files changed
+198
-71
lines changed- packages
- react-dom/src/__tests__
- react-reconciler/src
- __tests__
8 files changed
+198
-71
lines changedLines changed: 12 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
| |||
758 | 762 | | |
759 | 763 | | |
760 | 764 | | |
761 | | - | |
| 765 | + | |
762 | 766 | | |
763 | 767 | | |
764 | 768 | | |
| |||
768 | 772 | | |
769 | 773 | | |
770 | 774 | | |
771 | | - | |
| 775 | + | |
772 | 776 | | |
773 | 777 | | |
774 | 778 | | |
| |||
818 | 822 | | |
819 | 823 | | |
820 | 824 | | |
821 | | - | |
| 825 | + | |
822 | 826 | | |
823 | 827 | | |
824 | 828 | | |
| |||
829 | 833 | | |
830 | 834 | | |
831 | 835 | | |
832 | | - | |
| 836 | + | |
833 | 837 | | |
834 | 838 | | |
835 | 839 | | |
836 | 840 | | |
837 | 841 | | |
838 | | - | |
| 842 | + | |
839 | 843 | | |
840 | 844 | | |
841 | 845 | | |
| |||
1294 | 1298 | | |
1295 | 1299 | | |
1296 | 1300 | | |
1297 | | - | |
| 1301 | + | |
1298 | 1302 | | |
1299 | 1303 | | |
1300 | 1304 | | |
| |||
1304 | 1308 | | |
1305 | 1309 | | |
1306 | 1310 | | |
1307 | | - | |
| 1311 | + | |
1308 | 1312 | | |
1309 | 1313 | | |
1310 | 1314 | | |
| |||
1354 | 1358 | | |
1355 | 1359 | | |
1356 | 1360 | | |
1357 | | - | |
| 1361 | + | |
1358 | 1362 | | |
1359 | 1363 | | |
1360 | 1364 | | |
| |||
Lines changed: 50 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
374 | 424 | | |
Lines changed: 20 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
35 | 52 | | |
36 | 53 | | |
37 | 54 | | |
| |||
50 | 67 | | |
51 | 68 | | |
52 | 69 | | |
| 70 | + | |
53 | 71 | | |
54 | 72 | | |
55 | 73 | | |
56 | 74 | | |
57 | 75 | | |
58 | 76 | | |
59 | | - | |
| 77 | + | |
60 | 78 | | |
61 | 79 | | |
62 | 80 | | |
| |||
Lines changed: 20 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
35 | 52 | | |
36 | 53 | | |
37 | 54 | | |
| |||
50 | 67 | | |
51 | 68 | | |
52 | 69 | | |
| 70 | + | |
53 | 71 | | |
54 | 72 | | |
55 | 73 | | |
56 | 74 | | |
57 | 75 | | |
58 | 76 | | |
59 | | - | |
| 77 | + | |
60 | 78 | | |
61 | 79 | | |
62 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
| 53 | + | |
53 | 54 | | |
| 55 | + | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
| |||
561 | 563 | | |
562 | 564 | | |
563 | 565 | | |
564 | | - | |
| 566 | + | |
565 | 567 | | |
566 | 568 | | |
567 | 569 | | |
| |||
698 | 700 | | |
699 | 701 | | |
700 | 702 | | |
701 | | - | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
702 | 708 | | |
703 | 709 | | |
704 | | - | |
| 710 | + | |
705 | 711 | | |
706 | 712 | | |
707 | | - | |
| 713 | + | |
708 | 714 | | |
709 | 715 | | |
710 | 716 | | |
| |||
1054 | 1060 | | |
1055 | 1061 | | |
1056 | 1062 | | |
1057 | | - | |
| 1063 | + | |
1058 | 1064 | | |
1059 | 1065 | | |
1060 | 1066 | | |
| |||
1085 | 1091 | | |
1086 | 1092 | | |
1087 | 1093 | | |
1088 | | - | |
| 1094 | + | |
1089 | 1095 | | |
1090 | 1096 | | |
1091 | 1097 | | |
| |||
1111 | 1117 | | |
1112 | 1118 | | |
1113 | 1119 | | |
| 1120 | + | |
| 1121 | + | |
1114 | 1122 | | |
1115 | | - | |
1116 | 1123 | | |
1117 | | - | |
| 1124 | + | |
1118 | 1125 | | |
1119 | 1126 | | |
1120 | 1127 | | |
| |||
1126 | 1133 | | |
1127 | 1134 | | |
1128 | 1135 | | |
| 1136 | + | |
| 1137 | + | |
1129 | 1138 | | |
1130 | | - | |
1131 | 1139 | | |
1132 | | - | |
| 1140 | + | |
1133 | 1141 | | |
1134 | 1142 | | |
1135 | 1143 | | |
| |||
1151 | 1159 | | |
1152 | 1160 | | |
1153 | 1161 | | |
1154 | | - | |
1155 | 1162 | | |
1156 | | - | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
1157 | 1166 | | |
1158 | 1167 | | |
1159 | 1168 | | |
| |||
1166 | 1175 | | |
1167 | 1176 | | |
1168 | 1177 | | |
| 1178 | + | |
| 1179 | + | |
1169 | 1180 | | |
1170 | | - | |
1171 | 1181 | | |
1172 | | - | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
1173 | 1185 | | |
1174 | 1186 | | |
1175 | 1187 | | |
| |||
1196 | 1208 | | |
1197 | 1209 | | |
1198 | 1210 | | |
1199 | | - | |
| 1211 | + | |
1200 | 1212 | | |
1201 | 1213 | | |
1202 | 1214 | | |
| |||
1226 | 1238 | | |
1227 | 1239 | | |
1228 | 1240 | | |
1229 | | - | |
| 1241 | + | |
1230 | 1242 | | |
1231 | 1243 | | |
1232 | 1244 | | |
| |||
2098 | 2110 | | |
2099 | 2111 | | |
2100 | 2112 | | |
2101 | | - | |
| 2113 | + | |
2102 | 2114 | | |
2103 | 2115 | | |
2104 | 2116 | | |
| |||
2224 | 2236 | | |
2225 | 2237 | | |
2226 | 2238 | | |
2227 | | - | |
| 2239 | + | |
2228 | 2240 | | |
2229 | 2241 | | |
2230 | 2242 | | |
| |||
0 commit comments