Fixed string conversion bug with global function #1711
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.
If we call a global JS function from a binding and there is a viewmodel property with the same name, it takes precedence. In this case, we were converting
bool
tostring
by emittingString(value)
, but if there was a property calledString
in the viewmodel, it assigned the value in it.This is a crazy bug, and this PR doesn't by far fix all cases - I am afraid it is almost impossible.
I fixed the
String(...)
andNumber(...)
cases but what if someone has a property calledwindow
in the viewmodel... ☠️Luckily, most JS global functions start with a lowercase letter while viewmodel properties commonly start with an uppercase letter.