breaking: array proxy coercion is no longer reactive in template #13538
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.
Fixes #13525. An alternative approach to #13541.
This is an interesting one but one I think we need. When you have an object in the template, we push people to use
toString()
in order for its contents to be reactive – as this shows intent. Today, we have some cases where this is not consistent.However, we have
Symbol.toPrimitive
and we can detect this on our proxied arrays and actually intervene and provide a non-reactive result in the case where someone hasn't explicitly calledtoString()
from within the template. This means that we now have better consistency and we can push people to usingthing.toString()
instead of using coercion. Which are all far better than just having it magically be reactive with coercion.