Use Object.create(null) instead of {} to compute keyed diffs #180
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.
This is a minor improvement pull request.
{}
creates an empty object but which still contains methods and properties liketoString
. Checkingchanges[key]
when the key is for instancetoString
creates false positives in that check.I was looking whether into whether this caused bugs, but in practice, the algorithms in
_VirtualDom_insertNode
and_VirtualDom_removeNode
end up with the correct behavior because they recurse with a modified key, but do so with an unnecessary iteration.Object.create(null)
creates an empty object without any methods or properties, leading to no false positives and one less unnecessary iteration.