dillon1000/react
Commit
Browse files Refactor Component Stack Traces (#18495)
* Add feature flag * Split stack from current fiber You can get stack from any fiber, not just current. * Refactor description of component frames These should use fiber tags for switching. This also puts the relevant code behind DEV flags. * We no longer expose StrictMode in component stacks They're not super useful and will go away later anyway. * Update tests Context is no longer part of SSR stacks. This was already the case on the client. forwardRef no longer is wrapped on the stack. It's still in getComponentName but it's probably just noise in stacks. Eventually we'll remove the wrapper so it'll go away anyway. If we use native stack frames they won't have this extra wrapper. It also doesn't pick up displayName from the outer wrapper. We could maybe transfer it but this will also be fixed by removing the wrapper. * Forward displayName onto the inner function for forwardRef and memo in DEV This allows them to show up in stack traces. I'm not doing this for lazy because lazy is supposed to be called on the consuming side so you shouldn't assign it a name on that end. Especially not one that mutates the inner. * Use multiple instances of the fake component We mutate the inner component for its name so we need multiple copies.
Changed paths33 files
First-parent comparisonpackages/react-devtools-shared/src/__tests__/__snapshots__/store-test.js.snap ModifiedM packages/react-devtools-shared/src/__tests__/store-test.js ModifiedM packages/react-dom/src/__tests__/findDOMNode-test.js ModifiedM packages/react-dom/src/server/ReactPartialRenderer.js ModifiedM packages/react-native-renderer/src/ReactNativeRenderer.js ModifiedM packages/react-native-renderer/src/__tests__/ReactFabric-test.internal.js ModifiedM packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js ModifiedM packages/react-reconciler/src/ReactCapturedValue.js ModifiedM packages/react-reconciler/src/ReactChildFiber.js ModifiedM packages/react-reconciler/src/ReactCurrentFiber.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.js ModifiedA packages/react-reconciler/src/ReactFiberComponentStack.js AddedM packages/react-reconciler/src/ReactFiberReconciler.old.js ModifiedM packages/react-reconciler/src/ReactFiberThrow.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.js ModifiedM packages/react-reconciler/src/ReactStrictModeWarnings.js ModifiedM packages/react/src/ReactDebugCurrentFrame.js ModifiedM packages/react/src/ReactForwardRef.js ModifiedM packages/react/src/ReactMemo.js ModifiedM packages/react/src/__tests__/ReactContextValidator-test.js ModifiedM packages/react/src/__tests__/ReactStrictMode-test.js ModifiedM packages/react/src/__tests__/forwardRef-test.js ModifiedA packages/shared/ReactComponentStackFrame.js AddedM packages/shared/ReactFeatureFlags.js ModifiedD packages/shared/describeComponentFrame.js DeletedM packages/shared/forks/ReactFeatureFlags.native-fb.js ModifiedM packages/shared/forks/ReactFeatureFlags.native-oss.js ModifiedM packages/shared/forks/ReactFeatureFlags.test-renderer.js ModifiedM packages/shared/forks/ReactFeatureFlags.test-renderer.www.js ModifiedM packages/shared/forks/ReactFeatureFlags.testing.js ModifiedM packages/shared/forks/ReactFeatureFlags.testing.www.js ModifiedM packages/shared/forks/ReactFeatureFlags.www-dynamic.js ModifiedM packages/shared/forks/ReactFeatureFlags.www.js ModifiedPatch
Files changed
Rendering syntax-highlighted changes…