[lit-html] Fix ref bug when auto-bound class method used as as callback#2691
Merged
kevinpschaaf merged 6 commits intomainfrom Apr 1, 2022
Merged
[lit-html] Fix ref bug when auto-bound class method used as as callback#2691kevinpschaaf merged 6 commits intomainfrom
ref bug when auto-bound class method used as as callback#2691kevinpschaaf merged 6 commits intomainfrom
Conversation
🦋 Changeset detectedLatest commit: e915bde The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
📊 Tachometer Benchmark ResultsSummarynop-update
render
update
update-reflect
Resultslit-element-list
render
update
update-reflect
lit-html-kitchen-sink
render
update
nop-update
lit-html-repeat
render
update
lit-html-template-heavy
render
update
reactive-element-list
render
update
update-reflect
|
sorvell
requested changes
Mar 31, 2022
| // has already been rendered to a new spot. It is double-keyed on both the | ||
| // callback and the context (options.host), since we auto-bind class methods to | ||
| // options.host. | ||
| const lastElementForCallback: WeakMap< |
Member
There was a problem hiding this comment.
It seems like the WeakMap setup would make more sense if it was keyed off the host first.
Co-authored-by: Andrew Jakubowicz <spyr1014@gmail.com>
AndrewJakubowicz
approved these changes
Apr 1, 2022
Contributor
There was a problem hiding this comment.
Reviewed - although primarily syntax and logic surrounding the issue, since lack expertise in this domain.
This is awesome! TIL! Test is fantastic, and only comments are nits and clarifying my own understanding.
sorvell
approved these changes
Apr 1, 2022
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The
WeakMapused to store the last element called to a given callback is keyed on the callback function. Since unbound LitElement class methods passed as callbacks will all have the same references between class instances, this will result in incorrect tracking of the last element per unique callback, given that callbacks called on different context's should be considered unique.The change here uses nested WeakMaps to effectively double-key the lookup on both function and context.
Fixes #2677.