-
Notifications
You must be signed in to change notification settings - Fork 24.3k
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
feat(tm-android): Reject Promise if Turbo Module method throws an Error #37484
Closed
krystofwoldrich
wants to merge
52
commits into
facebook:main
from
krystofwoldrich:kw-mixed-stack-traces-promise
Closed
Changes from 31 commits
Commits
Show all changes
52 commits
Select commit
Hold shift + click to select a range
097525d
Add iOS reject promise if turbo module method throws exception
krystofwoldrich 4fc71fd
Merge remote-tracking branch 'origin/main' into kw-mixed-stack-traces…
krystofwoldrich 108e205
Merge remote-tracking branch 'origin/main' into kw-mixed-stack-traces…
krystofwoldrich 0ca58bb
Merge branch 'main' into kw-mixed-stack-traces-promise
krystofwoldrich 5892e50
Add Android reject async func on error
krystofwoldrich 97606c9
add(ios): js stack to rejection caused by native exception or native …
krystofwoldrich 2eb0a46
Fix android promise reject and add JS stack trace
krystofwoldrich a836691
Refactor java callback
krystofwoldrich be2ea63
Fix typos
krystofwoldrich ccf5460
iOS jsStack do not copy
krystofwoldrich 85f48d7
Update lint
krystofwoldrich 7205f1d
More lint
krystofwoldrich d92339c
Merge remote-tracking branch 'upstream/main' into kw-mixed-stack-trac…
krystofwoldrich 99cb0b9
Add RCT_TRACE_PROMISE_REJECTION_ENABLED flag for iOS
krystofwoldrich 732dba9
Rename the iOS flag
krystofwoldrich 239667d
Add android flag and fix internal reject invocation on Hermes
krystofwoldrich 882c81b
move RCTInternalPromiseRejectBlock to rct turbo module
krystofwoldrich 9529dd9
Add js func returning void rethrow explanation
krystofwoldrich 40163ff
Rename RCTInternalPromiseRejectBlock to RCTNSExceptionHandler
krystofwoldrich 49b861d
Add CallbackWrapperExecutor type
krystofwoldrich 4d40ceb
Handle all throws from Obj-Cpp
krystofwoldrich 86bf079
Merge remote-tracking branch 'upstream/main' into kw-mixed-stack-trac…
krystofwoldrich b21990c
Merge branch 'main' into kw-mixed-stack-traces-promise
krystofwoldrich 25b32b7
Enable trace turbo module rejection in debug iOS builds
krystofwoldrich be8e027
Make jsInvocationStack optional
krystofwoldrich 377c328
Add jsInvocationStack comment
krystofwoldrich 6e4b652
use ref to js stack in createRejectJSErrorValue
krystofwoldrich abf7e8a
Use only one rejectJSIFn in java
krystofwoldrich e1634a6
Rename feature flag
krystofwoldrich 65982e2
fix flag func overload
krystofwoldrich ba06a6e
Update feature flag
krystofwoldrich c6dd575
Merge commit '60f5a80c1d5900e5213aabd3d3a762174996cfd1' into kw-mixed…
krystofwoldrich 2a3f8ea
enable tracing turbo modules promises rejections in debug
krystofwoldrich bd9b7f1
unify naming
krystofwoldrich 3f81d5a
Use jsi types for callback executor
krystofwoldrich 1936174
access cause safe
krystofwoldrich 975a511
keep js invocation stack as property
krystofwoldrich bf584da
Hold reference to stack to avoid parsing string
krystofwoldrich 3937f61
Add explanation comment
krystofwoldrich c735ba9
Add test errors logs for easier verification
krystofwoldrich 7e84c08
Add rejectTurboModulePromiseOnNativeError flag
krystofwoldrich f0f515b
Drop iOS changes
krystofwoldrich 7359585
One more header
krystofwoldrich 0025fbd
Merge remote-tracking branch 'upstream/main' into kw-mixed-stack-trac…
krystofwoldrich 422f10f
review fixes, remove build config, unwrap callback executor, safe han…
krystofwoldrich b0a1ed5
Remove unused var
krystofwoldrich 26683c5
Merge remote-tracking branch 'upstream/main' into kw-mixed-stack-trac…
krystofwoldrich fdbde12
Use async callback WIP -> returns undefined
krystofwoldrich d545623
Clean up, fix reject index, revert stack to string add comments
krystofwoldrich d77f909
trace rejection based on debug config flag
krystofwoldrich bc505bf
Update based on comments
krystofwoldrich e99fb6a
Use global ref for throwable
krystofwoldrich File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we enable this by default in development/debug builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that definitely make sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For iOS I solve it by compiler directives if a user doesn't set the flag and the build is a debug build then enabled.
But for Java, I'm not sure if we can do the same, as using the ReactFeatureFlags we can't tell if a user flipped the flag or not, did I miss something or how would you solve it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Java, you could default init the ReactFeatureFlags with ReactBuildConfig.DEBUG, but we probably should move this out of ReactFeatureFlags as well, since that's only intended for experimental features.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added ReactBuildConfig.DEBUG for now