DOMTokenList: Reuse index from DOMTokenList instance if possible … #166
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.
…instead of parsing raw string attribute every time
In our Angular Universal app we extensively use utility classes that can be toggled conditionally.
While investigation recent performance issues, I noticed that the single longest-running piece of code is
getList
function from DOMTokenList. Looks like adding multiple classes to a dom element one by one is O(N^2), as at each step getList is called and parses the raw string property into a list of tokens. This parsing seems to be quite a heavy operation.This PR implements a way to avoid unnecessary parsing by reusing results from the previous step.
In our project this change reduced the class list processing time by half.