Skip to content

Conversation

@rickhanlonii
Copy link
Member

Summary: The symbolicated and symbolicatedComponentStack fields had identical inline union types duplicated in their definitions. This extracts a shared SymbolicationState type to reduce duplication and improve maintainability.

Reviewed By: vzaidman

Differential Revision: D90896974

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jan 19, 2026
@meta-codesync
Copy link

meta-codesync bot commented Jan 19, 2026

@rickhanlonii has exported this pull request. If you are a Meta employee, you can view the originating Diff in D90896974.

Summary:

Remove tests that only test legacy component stack behavior. The 'stack' tests provide equivalent coverage for all scenarios.

Legacy component stacks used a custom React string format (`\n    in ComponentName (at filename.js:123)`) that was not symbolicated. The modern 'stack' format uses native JS Error stack frames that get properly symbolicated.

This is the first step in removing `componentStackType` from LogBox entirely. The legacy parsing logic will be removed in a follow-up diff.

Reviewed By: vzaidman

Differential Revision: D90888272
Summary:

All component stacks now use the native JS Error stack frame format which gets properly symbolicated. This removes the legacy/stack distinction since the legacy format (custom React string format) is no longer used.

After this change, all component stacks will be symbolicated, improving the debugging experience.

Reviewed By: vzaidman

Differential Revision: D90888223
Summary:

LogBox was doing a wasteful round-trip conversion: parseComponentStack converted Stack → ComponentStack, stored it that way, then convertComponentStackToStack converted it back every time it was used.

This eliminates the unnecessary conversion by storing componentStack as Stack directly from the start. The ComponentStack type is removed entirely since it's no longer needed.

Also consolidates duplicate helper functions in LogBoxLog-test.js by removing createStackForComponentStack and createComponentStack, keeping only the createStack helper.

Reviewed By: vzaidman

Differential Revision: D90896380
Summary:

The `symbolicated` and `symbolicatedComponentStack` fields had identical inline union types duplicated in their definitions. This extracts a shared `SymbolicationState` type to reduce duplication and improve maintainability.

Reviewed By: vzaidman

Differential Revision: D90896974
rickhanlonii added a commit to rickhanlonii/react-native that referenced this pull request Jan 19, 2026
Summary:

The `symbolicated` and `symbolicatedComponentStack` fields had identical inline union types duplicated in their definitions. This extracts a shared `SymbolicationState` type to reduce duplication and improve maintainability.

Reviewed By: vzaidman

Differential Revision: D90896974
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants