Commit 1c59fbf
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 8fc38bf commit 1c59fbf
File tree
9 files changed
+132
-209
lines changed- packages/react-reconciler/src
- scripts/error-codes
9 files changed
+132
-209
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 | | |
| |||
1145 | 1144 | | |
1146 | 1145 | | |
1147 | 1146 | | |
1148 | | - | |
1149 | 1147 | | |
1150 | 1148 | | |
1151 | 1149 | | |
| |||
1168 | 1166 | | |
1169 | 1167 | | |
1170 | 1168 | | |
1171 | | - | |
1172 | 1169 | | |
1173 | 1170 | | |
1174 | 1171 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
| |||
1145 | 1144 | | |
1146 | 1145 | | |
1147 | 1146 | | |
1148 | | - | |
1149 | 1147 | | |
1150 | 1148 | | |
1151 | 1149 | | |
| |||
1168 | 1166 | | |
1169 | 1167 | | |
1170 | 1168 | | |
1171 | | - | |
1172 | 1169 | | |
1173 | 1170 | | |
1174 | 1171 | | |
| |||
| 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