Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove invokeGuardedCallback and replay trick #28515

Merged
merged 4 commits into from
Mar 12, 2024

Conversation

sebmarkbage
Copy link
Collaborator

We broke the ability to "break on uncaught exceptions" by adding a try/catch higher up in the scheduling. We're giving up on fixing that so we can remove the replay trick inside an event handler.

The issue with that approach is that we end up double logging a lot of errors in DEV since they get reported to the page.

It's also a lot of complexity around this feature.

@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Mar 7, 2024
@react-sizebot
Copy link

react-sizebot commented Mar 7, 2024

Comparing: 7d6f1e3...8ed9d7c

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 177.10 kB 176.71 kB = 55.20 kB 54.89 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 177.64 kB 177.25 kB = 55.53 kB 55.25 kB
facebook-www/ReactDOM-prod.classic.js = 593.92 kB 592.84 kB = 104.85 kB 104.15 kB
facebook-www/ReactDOM-prod.modern.js = 577.18 kB 576.10 kB = 101.91 kB 101.21 kB
oss-experimental/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-stable-semver/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-stable/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
oss-stable/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
facebook-www/ReactTestUtils-dev.classic.js = 54.14 kB 51.14 kB = 13.80 kB 13.07 kB
facebook-www/ReactTestUtils-dev.modern.js = 54.14 kB 51.14 kB = 13.80 kB 13.07 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-stable/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-experimental/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-stable-semver/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-stable/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
oss-stable/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
test_utils/ReactAllWarnings.js Deleted 66.60 kB 0.00 kB Deleted 16.28 kB 0.00 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-dom/umd/react-dom.profiling.min.js = 186.40 kB 186.01 kB = 58.15 kB 57.72 kB
oss-stable/react-dom/umd/react-dom.profiling.min.js = 185.85 kB 185.46 kB = 57.85 kB 57.46 kB
oss-stable-semver/react-dom/umd/react-dom.profiling.min.js = 185.77 kB 185.39 kB = 57.82 kB 57.44 kB
oss-experimental/react-dom/cjs/react-dom.profiling.min.js = 187.11 kB 186.72 kB = 57.89 kB 57.57 kB
oss-stable/react-dom/cjs/react-dom.profiling.min.js = 186.57 kB 186.18 kB = 57.55 kB 57.24 kB
oss-stable-semver/react-dom/cjs/react-dom.profiling.min.js = 186.49 kB 186.11 kB = 57.52 kB 57.21 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.production.min.js = 183.69 kB 183.30 kB = 57.79 kB 57.52 kB
oss-experimental/react-dom/umd/react-dom.production.min.js = 177.37 kB 176.98 kB = 55.77 kB 55.43 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 177.64 kB 177.25 kB = 55.53 kB 55.25 kB
oss-stable/react-dom/umd/react-dom.production.min.js = 176.82 kB 176.43 kB = 55.47 kB 55.10 kB
oss-stable-semver/react-dom/umd/react-dom.production.min.js = 176.74 kB 176.36 kB = 55.44 kB 55.07 kB
oss-stable/react-dom/cjs/react-dom.production.min.js = 177.10 kB 176.71 kB = 55.20 kB 54.89 kB
oss-stable-semver/react-dom/cjs/react-dom.production.min.js = 177.02 kB 176.64 kB = 55.17 kB 54.87 kB
oss-experimental/react-dom/cjs/react-dom.profiling.js = 998.98 kB 996.42 kB = 222.71 kB 221.90 kB
oss-stable/react-dom/cjs/react-dom.profiling.js = 996.42 kB 993.85 kB = 221.61 kB 220.81 kB
oss-stable-semver/react-dom/cjs/react-dom.profiling.js = 996.39 kB 993.83 kB = 221.59 kB 220.78 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.production.js = 974.97 kB 972.40 kB = 219.60 kB 218.80 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 957.05 kB 954.48 kB = 215.12 kB 214.31 kB
oss-stable/react-dom/cjs/react-dom.production.js = 954.48 kB 951.91 kB = 214.06 kB 213.25 kB
oss-stable-semver/react-dom/cjs/react-dom.production.js = 954.45 kB 951.89 kB = 214.03 kB 213.22 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js = 401.56 kB 400.45 kB = 70.29 kB 69.79 kB
react-native/implementations/ReactFabric-profiling.fb.js = 394.08 kB 392.95 kB = 69.01 kB 68.47 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js = 374.20 kB 373.09 kB = 66.01 kB 65.46 kB
react-native/implementations/ReactFabric-prod.fb.js = 366.79 kB 365.65 kB = 64.73 kB 64.20 kB
react-native/implementations/ReactNativeRenderer-profiling.js = 355.28 kB 354.17 kB = 62.30 kB 61.77 kB
react-native/implementations/ReactFabric-profiling.js = 345.55 kB 344.41 kB = 60.54 kB 60.08 kB
react-native/implementations/ReactNativeRenderer-prod.js = 335.88 kB 334.77 kB = 59.08 kB 58.58 kB
react-native/implementations/ReactFabric-prod.js = 326.87 kB 325.74 kB = 57.47 kB 56.99 kB
facebook-www/ReactTestRenderer-dev.classic.js = 945.36 kB 941.63 kB = 188.33 kB 187.15 kB
facebook-www/ReactTestRenderer-dev.modern.js = 945.36 kB 941.62 kB = 188.33 kB 187.14 kB
facebook-www/ReactDOMTesting-dev.classic.js = 1,691.75 kB 1,681.72 kB = 336.12 kB 333.43 kB
facebook-www/ReactDOM-dev.classic.js = 1,670.23 kB 1,660.20 kB = 331.57 kB 328.89 kB
facebook-www/ReactDOMTesting-dev.modern.js = 1,660.67 kB 1,650.64 kB = 330.62 kB 327.94 kB
facebook-www/ReactDOM-dev.modern.js = 1,639.21 kB 1,629.17 kB = 326.06 kB 323.41 kB
facebook-www/ReactART-dev.classic.js = 1,065.88 kB 1,056.80 kB = 209.46 kB 206.92 kB
facebook-www/ReactART-dev.modern.js = 1,053.67 kB 1,044.60 kB = 207.04 kB 204.49 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.development.js = 1,357.96 kB 1,341.57 kB = 300.46 kB 295.51 kB
oss-experimental/react-dom/umd/react-dom.development.js = 1,404.68 kB 1,387.65 kB = 299.19 kB 294.25 kB
oss-stable/react-dom/umd/react-dom.development.js = 1,403.26 kB 1,386.23 kB = 298.75 kB 293.85 kB
oss-stable-semver/react-dom/umd/react-dom.development.js = 1,403.23 kB 1,386.20 kB = 298.73 kB 293.82 kB
oss-experimental/react-dom/cjs/react-dom.development.js = 1,340.17 kB 1,323.77 kB = 296.19 kB 291.25 kB
oss-stable/react-dom/cjs/react-dom.development.js = 1,338.91 kB 1,322.51 kB = 295.78 kB 290.87 kB
oss-stable-semver/react-dom/cjs/react-dom.development.js = 1,338.88 kB 1,322.49 kB = 295.75 kB 290.83 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js = 933.09 kB 920.77 kB = 186.44 kB 182.85 kB
oss-stable/react-test-renderer/umd/react-test-renderer.development.js = 863.83 kB 852.29 kB = 182.53 kB 178.93 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.development.js = 863.81 kB 852.27 kB = 182.50 kB 178.90 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.development.js = 861.98 kB 850.44 kB = 182.03 kB 178.43 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js = 824.94 kB 813.81 kB = 180.57 kB 176.99 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js = 824.91 kB 813.79 kB = 180.54 kB 176.96 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js = 823.18 kB 812.05 kB = 180.09 kB 176.50 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js = 954.04 kB 938.61 kB = 204.52 kB 199.78 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js = 945.22 kB 929.79 kB = 202.91 kB 198.15 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js = 945.19 kB 929.77 kB = 202.88 kB 198.13 kB
oss-experimental/react-art/umd/react-art.development.js = 967.58 kB 951.42 kB = 204.22 kB 199.50 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js = 1,104.37 kB 1,085.89 kB = 221.56 kB 216.60 kB
oss-stable/react-art/umd/react-art.development.js = 961.01 kB 944.84 kB = 203.54 kB 198.83 kB
oss-stable-semver/react-art/umd/react-art.development.js = 960.98 kB 944.81 kB = 203.51 kB 198.81 kB
react-native/implementations/ReactFabric-dev.fb.js = 1,089.80 kB 1,071.32 kB = 217.71 kB 212.73 kB
react-native/implementations/ReactNativeRenderer-dev.js = 1,018.40 kB 999.92 kB = 205.14 kB 200.16 kB
oss-experimental/react-art/cjs/react-art.development.js = 850.71 kB 835.14 kB = 184.96 kB 180.14 kB
oss-stable/react-art/cjs/react-art.development.js = 844.49 kB 828.92 kB = 184.34 kB 179.51 kB
oss-stable-semver/react-art/cjs/react-art.development.js = 844.46 kB 828.90 kB = 184.32 kB 179.48 kB
react-native/implementations/ReactFabric-dev.js = 1,002.12 kB 983.64 kB = 201.05 kB 196.06 kB
oss-experimental/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-stable-semver/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-stable/react-dom/umd/react-dom-test-utils.production.min.js = 12.52 kB 12.03 kB = 4.87 kB 4.70 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
oss-stable/react-dom/cjs/react-dom-test-utils.production.min.js = 12.43 kB 11.94 kB = 4.82 kB 4.66 kB
facebook-www/ReactTestUtils-dev.classic.js = 54.14 kB 51.14 kB = 13.80 kB 13.07 kB
facebook-www/ReactTestUtils-dev.modern.js = 54.14 kB 51.14 kB = 13.80 kB 13.07 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-stable/react-dom/cjs/react-dom-test-utils.production.js = 45.18 kB 42.64 kB = 12.81 kB 12.11 kB
oss-experimental/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-stable-semver/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-stable/react-dom/umd/react-dom-test-utils.development.js = 58.17 kB 47.41 kB = 16.21 kB 13.10 kB
oss-experimental/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
oss-stable-semver/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
oss-stable/react-dom/cjs/react-dom-test-utils.development.js = 55.01 kB 44.64 kB = 15.92 kB 12.87 kB
test_utils/ReactAllWarnings.js Deleted 66.60 kB 0.00 kB Deleted 16.28 kB 0.00 kB

Generated by 🚫 dangerJS against 8ed9d7c

!originalError._suppressLogging
) {
// If suppressed, let the flag carry over to the original error which is the one we'll rethrow.
originalError._suppressLogging = true;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forget how this was consumed but do we still want to support this log suppression? Was it useful for reasons outside of the double error reporting? I think this is used by some frameworks to avoid the double log by customizing the window error handling to not warn on errors-as-control flow like redirect and notFound

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's maybe to avoid logging the globally caught error if you've already handled it.

Copy link
Member

@rickhanlonii rickhanlonii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, tested the PR internally

@sebmarkbage sebmarkbage force-pushed the rminvokeguardedcallback branch 2 times, most recently from de66616 to fe246c9 Compare March 9, 2024 22:59
it('are properly handled for layout effect creation', async () => {
let useLayoutEffectShouldThrow = false;

function ThrowsInLayoutEffect() {
function ThrowsInLayoutEffect({unused}) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tests used to only run in dev.

In prod we don't disable logs during component stack generation, so when the component stack gets generated it ends up logging again. We can avoid that by ensure component stacks error before the log. E.g. by destructuring props.

@@ -3267,7 +3267,7 @@ describe('ReactDOMFizzServer', () => {
});

// Partially render A, but yield before the render has finished
await waitFor(['Oops!', 'Oops!']);
await waitFor(['Oops!']);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is weird because it used to log twice in both DEV and prod for two different reasons.

In DEV it used to log twice because we did the replay trick which I now removed.

In prod it used to log twice because the component stack generation runs the function again and we don't disable Scheduler.log in prod during this generation - only in dev. To avoid this scenario I use props destructuring so it errors earlier instead.

@sebmarkbage sebmarkbage force-pushed the rminvokeguardedcallback branch 5 times, most recently from b8b7566 to eb6c0cc Compare March 10, 2024 00:54
@@ -56,7 +56,8 @@ describe('ReactDOMConsoleErrorReporting', () => {

describe('ReactDOMClient.createRoot', () => {
it('logs errors during event handlers', async () => {
spyOnDevAndProd(console, 'error');
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to switch to manual mocking. The spyOnDevAndProd helper doesn't work in a bunch of cases and I have no idea why.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess spyOn also calls the inner one. So in these cases it's because we're no longer ignoring uncaught error in logs.

@sebmarkbage
Copy link
Collaborator Author

It's not quite that easy it turns out. Added a bunch of TODOs.

@@ -7,12 +7,8 @@ module.exports = function shouldIgnoreConsoleError(
) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to get this file down to zero because it's covering up a bunch of quirks.

@sebmarkbage sebmarkbage force-pushed the rminvokeguardedcallback branch 7 times, most recently from bfa05cd to 62c0201 Compare March 11, 2024 23:20
This is pretty simple now.
Since we no longer get the error printed by the browser automatically
we have to manually print the error with an addendum which contains
component stacks.
@sebmarkbage
Copy link
Collaborator Author

There's no way to silence the logs when an error boundary catches it now but I have a follow up to change a few other things and introduce a possible way to silence it, but it can't be onerror that does it which is a breaking change.

@sebmarkbage sebmarkbage merged commit 89021fb into facebook:main Mar 12, 2024
38 checks passed
github-actions bot pushed a commit that referenced this pull request Mar 12, 2024
We broke the ability to "break on uncaught exceptions" by adding a
try/catch higher up in the scheduling. We're giving up on fixing that so
we can remove the replay trick inside an event handler.

The issue with that approach is that we end up double logging a lot of
errors in DEV since they get reported to the page.

It's also a lot of complexity around this feature.

DiffTrain build for [89021fb](89021fb)
gnoff added a commit to gnoff/next.js that referenced this pull request Mar 25, 2024
- facebook/react#28596
- facebook/react#28625
- facebook/react#28616
- facebook/react#28491
- facebook/react#28583
- facebook/react#28427
- facebook/react#28613
- facebook/react#28599
- facebook/react#28611
- facebook/react#28610
- facebook/react#28606
- facebook/react#28598
- facebook/react#28549
- facebook/react#28557
- facebook/react#28467
- facebook/react#28591
- facebook/react#28459
- facebook/react#28590
- facebook/react#28564
- facebook/react#28582
- facebook/react#28579
- facebook/react#28578
- facebook/react#28521
- facebook/react#28550
- facebook/react#28576
- facebook/react#28577
- facebook/react#28571
- facebook/react#28572
- facebook/react#28560
- facebook/react#28569
- facebook/react#28573
- facebook/react#28546
- facebook/react#28568
- facebook/react#28562
- facebook/react#28566
- facebook/react#28565
- facebook/react#28559
- facebook/react#28508
- facebook/react#20432
- facebook/react#28555
- facebook/react#24730
- facebook/react#28472
- facebook/react#27991
- facebook/react#28514
- facebook/react#28548
- facebook/react#28526
- facebook/react#28515
- facebook/react#28533
- facebook/react#28532
- facebook/react#28531
- facebook/react#28407
- facebook/react#28522
- facebook/react#28538
- facebook/react#28509
- facebook/react#28534
- facebook/react#28527
- facebook/react#28528
- facebook/react#28519
- facebook/react#28411
- facebook/react#28520
- facebook/react#28518
- facebook/react#28493
- facebook/react#28504
- facebook/react#28499
- facebook/react#28501
- facebook/react#28496
- facebook/react#28471
- facebook/react#28351
- facebook/react#28486
- facebook/react#28490
- facebook/react#28488
- facebook/react#28468
- facebook/react#28321
- facebook/react#28477
- facebook/react#28479
- facebook/react#28480
- facebook/react#28478
- facebook/react#28464
- facebook/react#28475
- facebook/react#28456
- facebook/react#28319
- facebook/react#28345
- facebook/react#28337
- facebook/react#28335
- facebook/react#28466
- facebook/react#28462
- facebook/react#28322
- facebook/react#28444
- facebook/react#28448
- facebook/react#28449
- facebook/react#28446
- facebook/react#28447
- facebook/react#24580
- facebook/react#28514
- facebook/react#28548
- facebook/react#28526
- facebook/react#28515
- facebook/react#28533
- facebook/react#28532
- facebook/react#28531
- facebook/react#28407
- facebook/react#28522
- facebook/react#28538
- facebook/react#28509
- facebook/react#28534
- facebook/react#28527
- facebook/react#28528
- facebook/react#28519
- facebook/react#28411
- facebook/react#28520
- facebook/react#28518
- facebook/react#28493
- facebook/react#28504
- facebook/react#28499
- facebook/react#28501
- facebook/react#28496
- facebook/react#28471
- facebook/react#28351
- facebook/react#28486
- facebook/react#28490
- facebook/react#28488
- facebook/react#28468
- facebook/react#28321
- facebook/react#28477
- facebook/react#28479
- facebook/react#28480
- facebook/react#28478
- facebook/react#28464
- facebook/react#28475
- facebook/react#28456
- facebook/react#28319
- facebook/react#28345
- facebook/react#28337
- facebook/react#28335
- facebook/react#28466
- facebook/react#28462
- facebook/react#28322
- facebook/react#28444
- facebook/react#28448
- facebook/react#28449
- facebook/react#28446
- facebook/react#28447
- facebook/react#24580
gnoff added a commit to gnoff/next.js that referenced this pull request Mar 25, 2024
- facebook/react#28596
- facebook/react#28625
- facebook/react#28616
- facebook/react#28491
- facebook/react#28583
- facebook/react#28427
- facebook/react#28613
- facebook/react#28599
- facebook/react#28611
- facebook/react#28610
- facebook/react#28606
- facebook/react#28598
- facebook/react#28549
- facebook/react#28557
- facebook/react#28467
- facebook/react#28591
- facebook/react#28459
- facebook/react#28590
- facebook/react#28564
- facebook/react#28582
- facebook/react#28579
- facebook/react#28578
- facebook/react#28521
- facebook/react#28550
- facebook/react#28576
- facebook/react#28577
- facebook/react#28571
- facebook/react#28572
- facebook/react#28560
- facebook/react#28569
- facebook/react#28573
- facebook/react#28546
- facebook/react#28568
- facebook/react#28562
- facebook/react#28566
- facebook/react#28565
- facebook/react#28559
- facebook/react#28508
- facebook/react#20432
- facebook/react#28555
- facebook/react#24730
- facebook/react#28472
- facebook/react#27991
- facebook/react#28514
- facebook/react#28548
- facebook/react#28526
- facebook/react#28515
- facebook/react#28533
- facebook/react#28532
- facebook/react#28531
- facebook/react#28407
- facebook/react#28522
- facebook/react#28538
- facebook/react#28509
- facebook/react#28534
- facebook/react#28527
- facebook/react#28528
- facebook/react#28519
- facebook/react#28411
- facebook/react#28520
- facebook/react#28518
- facebook/react#28493
- facebook/react#28504
- facebook/react#28499
- facebook/react#28501
- facebook/react#28496
- facebook/react#28471
- facebook/react#28351
- facebook/react#28486
- facebook/react#28490
- facebook/react#28488
- facebook/react#28468
- facebook/react#28321
- facebook/react#28477
- facebook/react#28479
- facebook/react#28480
- facebook/react#28478
- facebook/react#28464
- facebook/react#28475
- facebook/react#28456
- facebook/react#28319
- facebook/react#28345
- facebook/react#28337
- facebook/react#28335
- facebook/react#28466
- facebook/react#28462
- facebook/react#28322
- facebook/react#28444
- facebook/react#28448
- facebook/react#28449
- facebook/react#28446
- facebook/react#28447
- facebook/react#24580
EdisonVan pushed a commit to EdisonVan/react that referenced this pull request Apr 15, 2024
We broke the ability to "break on uncaught exceptions" by adding a
try/catch higher up in the scheduling. We're giving up on fixing that so
we can remove the replay trick inside an event handler.

The issue with that approach is that we end up double logging a lot of
errors in DEV since they get reported to the page.

It's also a lot of complexity around this feature.
hoxyq added a commit that referenced this pull request Apr 15, 2024
Full list of changes:
* Look for a ReactMemoCacheSentinel on state
([gsathya](https://github.com/gsathya) in
[#28831](#28831))
* Use use() in the Cache if available
([sebmarkbage](https://github.com/sebmarkbage) in
[#28793](#28793))
* feat[devtools-fusebox]: support theme option
([hoxyq](https://github.com/hoxyq) in
[#28832](#28832))
* feat[devtools]: add package for fusebox integration
([hoxyq](https://github.com/hoxyq) in
[#28553](#28553))
* feat[devtools]: add method for connecting backend with custom
messaging protocol ([hoxyq](https://github.com/hoxyq) in
[#28552](#28552))
* Rename SECRET INTERNALS to
`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`
([sebmarkbage](https://github.com/sebmarkbage) in
[#28789](#28789))
* Flatten ReactSharedInternals
([sebmarkbage](https://github.com/sebmarkbage) in
[#28783](#28783))
* feat[devtools]: ship source maps for content scripts and ignore list
installHook script ([hoxyq](https://github.com/hoxyq) in
[#28730](#28730))
* Track Owner for Server Components in DEV
([sebmarkbage](https://github.com/sebmarkbage) in
[#28753](#28753))
* Move ReactDOMLegacy implementation into RootFB
([sebmarkbage](https://github.com/sebmarkbage) in
[#28656](#28656))
* Reland #28672: Remove IndeterminateComponent
([gnoff](https://github.com/gnoff) in
[#28681](#28681))
* Remove reference to deleted <Cache> in un-linted file
([josephsavona](https://github.com/josephsavona) in
[#28715](#28715))
* [be] Remove unshipped experimental <Cache> element type
([josephsavona](https://github.com/josephsavona) in
[#28698](#28698))
* Revert "Remove module pattern function component support"
([rickhanlonii](https://github.com/rickhanlonii) in
[#28670](#28670))
* Remove module pattern function component support
([gnoff](https://github.com/gnoff) in
[#27742](#27742))
* [RTR] Enable warning flag ([jackpope](https://github.com/jackpope) in
[#28419](#28419))
* Update error messages ([rickhanlonii](https://github.com/rickhanlonii)
in [#28652](#28652))
* fix[devtools/ci]: split profiling cache test for different react
versions and toEqual checker ([hoxyq](https://github.com/hoxyq) in
[#28628](#28628))
* Guard against legacy context not being supported in DevTools fixture
([eps1lon](https://github.com/eps1lon) in
[#28596](#28596))
* Use `declare const` instead of `declare var`
([kassens](https://github.com/kassens) in
[#28599](#28599))
* Update isConcurrent RTR option usage
([jackpope](https://github.com/jackpope) in
[#28546](#28546))
* Disable legacy context ([kassens](https://github.com/kassens) in
[#27991](#27991))
* Remove invokeGuardedCallback and replay trick
([sebmarkbage](https://github.com/sebmarkbage) in
[#28515](#28515))
* Remove remaining usages of ReactTestUtils in tests unrelated to
`react-dom/test-util` ([eps1lon](https://github.com/eps1lon) in
[#28534](#28534))
* fix[devtools/e2e]: fixed source inspection in e2e tests
([hoxyq](https://github.com/hoxyq) in
[#28518](#28518))
* Devtools: Display actual pending state when inspecting `useTransition`
([eps1lon](https://github.com/eps1lon) in
[#28499](#28499))
bigfootjon pushed a commit that referenced this pull request Apr 18, 2024
We broke the ability to "break on uncaught exceptions" by adding a
try/catch higher up in the scheduling. We're giving up on fixing that so
we can remove the replay trick inside an event handler.

The issue with that approach is that we end up double logging a lot of
errors in DEV since they get reported to the page.

It's also a lot of complexity around this feature.

DiffTrain build for commit 89021fb.
eps1lon added a commit to vercel/next.js that referenced this pull request Apr 19, 2024
### React upstream changes

- facebook/react#28643
- facebook/react#28628
- facebook/react#28361
- facebook/react#28513
- facebook/react#28299
- facebook/react#28617
- facebook/react#28618
- facebook/react#28621
- facebook/react#28614
- facebook/react#28596
- facebook/react#28625
- facebook/react#28616
- facebook/react#28491
- facebook/react#28583
- facebook/react#28427
- facebook/react#28613
- facebook/react#28599
- facebook/react#28611
- facebook/react#28610
- facebook/react#28606
- facebook/react#28598
- facebook/react#28549
- facebook/react#28557
- facebook/react#28467
- facebook/react#28591
- facebook/react#28459
- facebook/react#28590
- facebook/react#28564
- facebook/react#28582
- facebook/react#28579
- facebook/react#28578
- facebook/react#28521
- facebook/react#28550
- facebook/react#28576
- facebook/react#28577
- facebook/react#28571
- facebook/react#28572
- facebook/react#28560
- facebook/react#28569
- facebook/react#28573
- facebook/react#28546
- facebook/react#28568
- facebook/react#28562
- facebook/react#28566
- facebook/react#28565
- facebook/react#28559
- facebook/react#28508
- facebook/react#20432
- facebook/react#28555
- facebook/react#24730
- facebook/react#28472
- facebook/react#27991
- facebook/react#28514
- facebook/react#28548
- facebook/react#28526
- facebook/react#28515
- facebook/react#28533
- facebook/react#28532
- facebook/react#28531
- facebook/react#28407
- facebook/react#28522
- facebook/react#28538
- facebook/react#28509
- facebook/react#28534
- facebook/react#28527
- facebook/react#28528
- facebook/react#28519
- facebook/react#28411
- facebook/react#28520
- facebook/react#28518
- facebook/react#28493
- facebook/react#28504
- facebook/react#28499
- facebook/react#28501
- facebook/react#28496
- facebook/react#28471
- facebook/react#28351
- facebook/react#28486
- facebook/react#28490
- facebook/react#28488
- facebook/react#28468
- facebook/react#28321
- facebook/react#28477
- facebook/react#28479
- facebook/react#28480
- facebook/react#28478
- facebook/react#28464
- facebook/react#28475
- facebook/react#28456
- facebook/react#28319
- facebook/react#28345
- facebook/react#28337
- facebook/react#28335
- facebook/react#28466
- facebook/react#28462
- facebook/react#28322
- facebook/react#28444
- facebook/react#28448
- facebook/react#28449
- facebook/react#28446
- facebook/react#28447
- facebook/react#24580
- facebook/react#28514
- facebook/react#28548
- facebook/react#28526
- facebook/react#28515
- facebook/react#28533
- facebook/react#28532
- facebook/react#28531
- facebook/react#28407
- facebook/react#28522
- facebook/react#28538
- facebook/react#28509
- facebook/react#28534
- facebook/react#28527
- facebook/react#28528
- facebook/react#28519
- facebook/react#28411
- facebook/react#28520
- facebook/react#28518
- facebook/react#28493
- facebook/react#28504
- facebook/react#28499
- facebook/react#28501
- facebook/react#28496
- facebook/react#28471
- facebook/react#28351
- facebook/react#28486
- facebook/react#28490
- facebook/react#28488
- facebook/react#28468
- facebook/react#28321
- facebook/react#28477
- facebook/react#28479
- facebook/react#28480
- facebook/react#28478
- facebook/react#28464
- facebook/react#28475
- facebook/react#28456
- facebook/react#28319
- facebook/react#28345
- facebook/react#28337
- facebook/react#28335
- facebook/react#28466
- facebook/react#28462
- facebook/react#28322
- facebook/react#28444
- facebook/react#28448
- facebook/react#28449
- facebook/react#28446
- facebook/react#28447
- facebook/react#24580
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants