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.
Description
This PR fully separates the normalization of
classandclassNamefrom the merging ofvnode.attrsandvnode.state.attrs, which were previously handled together in the same code path. This simplifies conditional branches and improves bundle size and performance.results of `npm run perf` on my laptop (about 3-4% improvements for `rerender same tree`)
results of this PR (after)
results of #3052 (before)
Note that "rerender same tree (with selector-generated attrs)" is measured by changing the code as in #3041.
Motivation and Context
I’ve iterated on this section a few times already (b17819e, e6ee5d0 (cc0df94)), and this PR is intended to be the final refinement of that work.
How Has This Been Tested?
npm run testhyperscript.Types of changes
Checklist