Commit f66d96a
Fix context propagation for offscreen/fallback trees (facebook#23095)
* Failing test for Context.Consumer in suspended Suspense
See issue facebook#19701.
* Fix context propagation for offscreen trees
* Address nits
* Specify propagation root for Suspense too
* Pass correct propagation root
* Harden test coverage
This test will fail if we remove propagation, or if we propagate with a root node like fiber.return or fiber.return.return. The additional DEV-only error helps detect a different kind of mistake, like if the thing being passed hasn't actually been encountered on the way up. However, we still leave the actual production loop to check against null so that there is no way we loop forever if the propagation root is wrong.
* Remove superfluous warning
Co-authored-by: overlookmotel <theoverlookmotel@gmail.com>1 parent 7351136 commit f66d96a
6 files changed
Lines changed: 253 additions & 22 deletions
File tree
- packages/react-reconciler/src
- __tests__
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| |||
2754 | 2754 | | |
2755 | 2755 | | |
2756 | 2756 | | |
2757 | | - | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
2758 | 2762 | | |
2759 | 2763 | | |
2760 | 2764 | | |
2761 | 2765 | | |
2762 | 2766 | | |
2763 | | - | |
| 2767 | + | |
2764 | 2768 | | |
2765 | 2769 | | |
2766 | 2770 | | |
| |||
2776 | 2780 | | |
2777 | 2781 | | |
2778 | 2782 | | |
2779 | | - | |
| 2783 | + | |
2780 | 2784 | | |
2781 | 2785 | | |
2782 | 2786 | | |
2783 | 2787 | | |
2784 | 2788 | | |
2785 | 2789 | | |
2786 | 2790 | | |
2787 | | - | |
| 2791 | + | |
2788 | 2792 | | |
2789 | 2793 | | |
2790 | 2794 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| |||
2754 | 2754 | | |
2755 | 2755 | | |
2756 | 2756 | | |
2757 | | - | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
2758 | 2762 | | |
2759 | 2763 | | |
2760 | 2764 | | |
2761 | 2765 | | |
2762 | 2766 | | |
2763 | | - | |
| 2767 | + | |
2764 | 2768 | | |
2765 | 2769 | | |
2766 | 2770 | | |
| |||
2776 | 2780 | | |
2777 | 2781 | | |
2778 | 2782 | | |
2779 | | - | |
| 2783 | + | |
2780 | 2784 | | |
2781 | 2785 | | |
2782 | 2786 | | |
2783 | 2787 | | |
2784 | 2788 | | |
2785 | 2789 | | |
2786 | 2790 | | |
2787 | | - | |
| 2791 | + | |
2788 | 2792 | | |
2789 | 2793 | | |
2790 | 2794 | | |
| |||
Lines changed: 37 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| 141 | + | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
144 | 145 | | |
145 | 146 | | |
146 | 147 | | |
| |||
157 | 158 | | |
158 | 159 | | |
159 | 160 | | |
160 | | - | |
| 161 | + | |
| 162 | + | |
161 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
162 | 169 | | |
163 | 170 | | |
164 | 171 | | |
165 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
166 | 181 | | |
167 | 182 | | |
168 | 183 | | |
| |||
246 | 261 | | |
247 | 262 | | |
248 | 263 | | |
249 | | - | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
250 | 269 | | |
251 | 270 | | |
252 | 271 | | |
| |||
284 | 303 | | |
285 | 304 | | |
286 | 305 | | |
287 | | - | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
288 | 311 | | |
289 | 312 | | |
290 | 313 | | |
| |||
365 | 388 | | |
366 | 389 | | |
367 | 390 | | |
368 | | - | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
369 | 396 | | |
370 | 397 | | |
371 | 398 | | |
| |||
406 | 433 | | |
407 | 434 | | |
408 | 435 | | |
409 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
410 | 441 | | |
411 | 442 | | |
412 | 443 | | |
| |||
Lines changed: 37 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| 141 | + | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
144 | 145 | | |
145 | 146 | | |
146 | 147 | | |
| |||
157 | 158 | | |
158 | 159 | | |
159 | 160 | | |
160 | | - | |
| 161 | + | |
| 162 | + | |
161 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
162 | 169 | | |
163 | 170 | | |
164 | 171 | | |
165 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
166 | 181 | | |
167 | 182 | | |
168 | 183 | | |
| |||
246 | 261 | | |
247 | 262 | | |
248 | 263 | | |
249 | | - | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
250 | 269 | | |
251 | 270 | | |
252 | 271 | | |
| |||
284 | 303 | | |
285 | 304 | | |
286 | 305 | | |
287 | | - | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
288 | 311 | | |
289 | 312 | | |
290 | 313 | | |
| |||
365 | 388 | | |
366 | 389 | | |
367 | 390 | | |
368 | | - | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
369 | 396 | | |
370 | 397 | | |
371 | 398 | | |
| |||
406 | 433 | | |
407 | 434 | | |
408 | 435 | | |
409 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
410 | 441 | | |
411 | 442 | | |
412 | 443 | | |
| |||
Lines changed: 63 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1532 | 1532 | | |
1533 | 1533 | | |
1534 | 1534 | | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
1535 | 1598 | | |
1536 | 1599 | | |
0 commit comments