[DevTools] If the await doesn't have a stack use the stack from use() if any#34162
Merged
sebmarkbage merged 3 commits intofacebook:mainfrom Aug 11, 2025
Merged
[DevTools] If the await doesn't have a stack use the stack from use() if any#34162sebmarkbage merged 3 commits intofacebook:mainfrom
sebmarkbage merged 3 commits intofacebook:mainfrom
Conversation
eps1lon
approved these changes
Aug 11, 2025
Comment on lines
+94
to
+95
| // original entry. However, that would require suspending the immediate display | ||
| // of these rows to first do source mapping before we can show the name. |
Collaborator
There was a problem hiding this comment.
Or put the sourcemapped asyncInfo into useDeferredValue in the parent
Contributor
Author
There was a problem hiding this comment.
It would still need to show something faster for each keystroke so a placeholder with same height is probably best.
We do this in the front end so that we have the option to apply source maps and ignore listing in determining this name.
6464757 to
965d2d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #34148.
This picks up the stack for the await from the
use()Hook if one was used to get this async info.When you select a component that used hooks, we already collect this information.
If you select a Suspense boundary, this lazily invokes the first component that awaited this data to inspects its hooks and produce a stack trace for the use().
When all we have for the name is "Promise" I also use the name of the first callsite in the stack trace if there's more than one. Which in practice will be the name of the custom Hook that called it. Ideally we'd use source mapping and ignore listing for this but that would require suspending the display. We could maybe make the SuspendedByRow wrapped in a Suspense boundary for this case.