Use dependentKeyCompat
for bindings
#64
Merged
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.
Background
Components in a shared library of Exclaim implementations can't know up front whether they're going to be operating in an
ExclaimUi
with@useClassicReactivity
set or not. While it's possible to just cut a breaking release of such libraries and assumed Octane reactivity, that doesn't provide a very nice migration path.This Change
By applying
dependentKeyCompat
to the property descriptors we set up for$bind
s in the modern env, we make it so that they can safely be targeted as@computed
dependencies. This means shared component libraries can safely use@computed
as a lowest common denominator as their consumers slowly migrate away from classic reactivity, then switch to native getters and stop using@computed
in a breaking release later on.