DescriptionDrop InvalidationSetMode.
*** NOT FOR LANDING ***
This is a demonstration of the end result of allowing all selectors to
update invalidation sets using updateInvalidationSets and never fall back
to a separate wholesubtree loop in collectFeaturesFromSelector. The method
for finding the InvalidationSetMode can be dropped completely, handling
selectors without features and selectors requiring subtree recalcs when
extracting the features instead.
By introducing a flag for crossing insertion points, the only special
handling left is to "clear" the InvalidationSetFeatures, and use a subtree
recalc when finding a ::first-line, ::first-letter, or :host-context in
the right-most compound selector.
There are a bunch of pseudo classes/elements which are white-listed in this
CL which needs to be white-listed on a case-by-case basis backed up with
tests, but there were no tests failing locally. I've added switch-asserts
causing compile errors if added selector types are neither white- nor
black-listed.
I have renamed the "wholeSubtree" flag to "adjacent" since it keeps track
of whether the last seen combinator was an adjacent combinator.
RuleFeaturesSet::collectFeaturesFromSelector is now back to how it was
before we introduced invalidation sets (without the feature hash sets).
Now, it only counts adjacent combinators and sets a flag when finding
::first-line, so it is possible to squash it into the same method as
updateInvalidationSets() to have a single pass over the selector when
finding rule features.
Patch Set 1 #
Total comments: 1
Messages
Total messages: 5 (1 generated)
|