Commit f284d9f
committed
Track ThenableState alongside other hooks
Now that hook state is preserved while the work loop is suspended, we
don't need to track the thenable state in the work loop. We can track
it alongside the rest of the hook state.
This is a nice simplification and also aligns better with how it works
in Fizz and Flight.
The promises will still be cleared when the component finishes rendering
(either complete or unwind). In the future, we could stash the promises
on the fiber and reuse them during an update. However, this would only
work for `use` calls that occur before an prop/state/context is
processed, because `use` calls can only be assumed to execute in the
same order if no other props/state/context have changed. So it might not
be worth doing until we have finer grained memoization.1 parent 6b4c031 commit f284d9f
File tree
9 files changed
+142
-221
lines changed- packages/react-reconciler/src
- scripts/error-codes
9 files changed
+142
-221
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
| |||
1167 | 1166 | | |
1168 | 1167 | | |
1169 | 1168 | | |
1170 | | - | |
1171 | 1169 | | |
1172 | 1170 | | |
1173 | 1171 | | |
| |||
1190 | 1188 | | |
1191 | 1189 | | |
1192 | 1190 | | |
1193 | | - | |
1194 | 1191 | | |
1195 | 1192 | | |
1196 | 1193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
| |||
1167 | 1166 | | |
1168 | 1167 | | |
1169 | 1168 | | |
1170 | | - | |
1171 | 1169 | | |
1172 | 1170 | | |
1173 | 1171 | | |
| |||
1190 | 1188 | | |
1191 | 1189 | | |
1192 | 1190 | | |
1193 | | - | |
1194 | 1191 | | |
1195 | 1192 | | |
1196 | 1193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
109 | 108 | | |
110 | 109 | | |
111 | 110 | | |
| |||
141 | 140 | | |
142 | 141 | | |
143 | 142 | | |
144 | | - | |
145 | 143 | | |
146 | 144 | | |
| 145 | + | |
147 | 146 | | |
148 | 147 | | |
149 | 148 | | |
| |||
247 | 246 | | |
248 | 247 | | |
249 | 248 | | |
| 249 | + | |
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| |||
449 | 449 | | |
450 | 450 | | |
451 | 451 | | |
| 452 | + | |
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
| |||
477 | 478 | | |
478 | 479 | | |
479 | 480 | | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | 481 | | |
485 | 482 | | |
486 | 483 | | |
| |||
525 | 522 | | |
526 | 523 | | |
527 | 524 | | |
528 | | - | |
529 | 525 | | |
530 | 526 | | |
531 | 527 | | |
| |||
538 | 534 | | |
539 | 535 | | |
540 | 536 | | |
541 | | - | |
542 | 537 | | |
543 | 538 | | |
544 | 539 | | |
| |||
600 | 595 | | |
601 | 596 | | |
602 | 597 | | |
| 598 | + | |
603 | 599 | | |
| 600 | + | |
604 | 601 | | |
605 | 602 | | |
606 | 603 | | |
| |||
652 | 649 | | |
653 | 650 | | |
654 | 651 | | |
655 | | - | |
656 | 652 | | |
657 | 653 | | |
658 | 654 | | |
| |||
676 | 672 | | |
677 | 673 | | |
678 | 674 | | |
679 | | - | |
680 | 675 | | |
681 | 676 | | |
682 | 677 | | |
| |||
687 | 682 | | |
688 | 683 | | |
689 | 684 | | |
690 | | - | |
691 | 685 | | |
692 | 686 | | |
693 | 687 | | |
| |||
735 | 729 | | |
736 | 730 | | |
737 | 731 | | |
738 | | - | |
739 | 732 | | |
740 | 733 | | |
741 | 734 | | |
| |||
821 | 814 | | |
822 | 815 | | |
823 | 816 | | |
| 817 | + | |
824 | 818 | | |
825 | 819 | | |
826 | 820 | | |
| |||
954 | 948 | | |
955 | 949 | | |
956 | 950 | | |
957 | | - | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
958 | 956 | | |
959 | 957 | | |
960 | 958 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
109 | 108 | | |
110 | 109 | | |
111 | 110 | | |
| |||
141 | 140 | | |
142 | 141 | | |
143 | 142 | | |
144 | | - | |
145 | 143 | | |
146 | 144 | | |
| 145 | + | |
147 | 146 | | |
148 | 147 | | |
149 | 148 | | |
| |||
247 | 246 | | |
248 | 247 | | |
249 | 248 | | |
| 249 | + | |
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| |||
449 | 449 | | |
450 | 450 | | |
451 | 451 | | |
| 452 | + | |
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
| |||
477 | 478 | | |
478 | 479 | | |
479 | 480 | | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | 481 | | |
485 | 482 | | |
486 | 483 | | |
| |||
525 | 522 | | |
526 | 523 | | |
527 | 524 | | |
528 | | - | |
529 | 525 | | |
530 | 526 | | |
531 | 527 | | |
| |||
538 | 534 | | |
539 | 535 | | |
540 | 536 | | |
541 | | - | |
542 | 537 | | |
543 | 538 | | |
544 | 539 | | |
| |||
600 | 595 | | |
601 | 596 | | |
602 | 597 | | |
| 598 | + | |
603 | 599 | | |
| 600 | + | |
604 | 601 | | |
605 | 602 | | |
606 | 603 | | |
| |||
652 | 649 | | |
653 | 650 | | |
654 | 651 | | |
655 | | - | |
656 | 652 | | |
657 | 653 | | |
658 | 654 | | |
| |||
676 | 672 | | |
677 | 673 | | |
678 | 674 | | |
679 | | - | |
680 | 675 | | |
681 | 676 | | |
682 | 677 | | |
| |||
687 | 682 | | |
688 | 683 | | |
689 | 684 | | |
690 | | - | |
691 | 685 | | |
692 | 686 | | |
693 | 687 | | |
| |||
735 | 729 | | |
736 | 730 | | |
737 | 731 | | |
738 | | - | |
739 | 732 | | |
740 | 733 | | |
741 | 734 | | |
| |||
821 | 814 | | |
822 | 815 | | |
823 | 816 | | |
| 817 | + | |
824 | 818 | | |
825 | 819 | | |
826 | 820 | | |
| |||
954 | 948 | | |
955 | 949 | | |
956 | 950 | | |
957 | | - | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
958 | 956 | | |
959 | 957 | | |
960 | 958 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | | - | |
36 | 34 | | |
37 | 35 | | |
38 | 36 | | |
39 | 37 | | |
40 | 38 | | |
41 | 39 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | 40 | | |
58 | 41 | | |
59 | 42 | | |
60 | 43 | | |
61 | 44 | | |
62 | 45 | | |
63 | 46 | | |
64 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
65 | 52 | | |
66 | 53 | | |
67 | 54 | | |
68 | 55 | | |
69 | | - | |
70 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
71 | 59 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
85 | 68 | | |
86 | 69 | | |
87 | 70 | | |
| |||
0 commit comments