mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-03 13:02:09 +02:00
Avoid repeated :has() child-list scheduling when pending data already covers every concrete feature bucket used by :has() selectors in a style scope. Featureless-sensitive scopes record child-list mutations conservatively instead. That conservative path avoids scanning mutation subtrees for concrete features when invalidation cannot rely on them anyway. When loading the Intel ISA PDF in pdf.js, instrumented subtree feature-collection visits at about 40k style invalidations dropped from around 71k to 1.6k, saving ~650ms of main thread time on my Linux machine. :^)
22 KiB
22 KiB