Pass whole RuntimeTargetDelegate from RN instead of aggregating its methods #43346
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.
Summary:
Changelog: [Internal]
(Continuing the theme of reducing integration boilerplate from D54537844.)
This diff changes both
JSExecutor(Bridge) andJSRuntime(Bridgeless) to no longer implementRuntimeTargetDelegate. Instead, each of them exposes agetRuntimeTargetDelegate()method that returns a stable reference to a target delegate that it owns.To facilitate this, we create a new
FallbackRuntimeTargetDelegatefor use in non-Hermes cases. This replaces almost all direct uses ofFallbackRuntimeAgentDelegateoutside ofjsinspector. I'll follow up in a separate diff to deal with the last case and make the fallback agent delegate fully private.As a result, changing the
RuntimeTargetDelegateinterface (which we'll need to do for console support) becomes much easier: we only have unit test mocks + two concreteRuntimeTargetDelegateimplementations (one fallback, one Hermes) to update for each API change.Differential Revision: D54585658