LibWeb: Add stale style focus and computed style coverage
Add coverage for focus and getComputedStyle() queries that run while style work is pending for the target element, its ancestors, slotted nodes, media queries, animations, and :has() invalidation. The expected output records the current stale results so the targeted style update change can show the behavior fix directly. Also make the style invalidation counter tests avoid recomputation counters in cases where the exact recomputation count is incidental to the invalidation behavior under test.
This commit is contained in:
parent
a18805ceeb
commit
459ad81da5
22 changed files with 401 additions and 169 deletions
|
|
@ -1,6 +1,18 @@
|
|||
after visible.focus(): visible
|
||||
after hidden ancestor input.focus() with computed style: visible
|
||||
after display none input.focus(): visible
|
||||
after display none from dirty style input.focus(): visible
|
||||
after display none from dirty style offsetWidth: 0
|
||||
after display none ancestor from dirty style input.focus(): visible
|
||||
after getComputedStyle in dirty display none subtree: rgb(4, 5, 6)
|
||||
after display none from pending animation input.focus(): animated-display-none-target
|
||||
after display none ancestor from pending animation input.focus(): animated-display-none-ancestor-target
|
||||
after display none from pending descendant invalidation input.focus(): animated-display-none-ancestor-target
|
||||
after display none from pending slotted invalidation input.focus(): visible
|
||||
after display none from pending :has invalidation input.focus(): visible
|
||||
after display none from pending media query input.focus(): BODY
|
||||
after display none from pending parent media query input.focus(): BODY
|
||||
after detached input.focus(): visible
|
||||
after display contents div.focus(): display-contents
|
||||
after unhidden input.focus(): hidden-ancestor
|
||||
after documentElement.focus(): BODY
|
||||
|
|
|
|||
|
|
@ -8,3 +8,6 @@
|
|||
7: rgb(0, 128, 0)
|
||||
8a: rgb(0, 0, 255)
|
||||
8b: rgb(0, 0, 255)
|
||||
9a: rgb(255, 0, 0)
|
||||
9b: rgb(255, 0, 0)
|
||||
10: rgb(255, 0, 0)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
PASS: attribute class match set requires class attribute presence | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: attribute class match set requires class attribute presence | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: [class] descendant loses match | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: [class] child loses match | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: typed [class] descendant loses match | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
PASS: class mutation invalidates affected :has() rule | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=8, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=7, hasResultCacheMisses=2
|
||||
PASS: class mutation still invalidates matching :has() rule | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=7, hasResultCacheMisses=2
|
||||
PASS: dir=auto text mutation invalidates :has(:empty) | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: checked property mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: disabled attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: enabled attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: required attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: optional attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: placeholder shown value mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: lang attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: dir attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: link href mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: any-link href mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: class mutation invalidates affected :has() rule | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=7, hasResultCacheMisses=2
|
||||
PASS: class mutation still invalidates matching :has() rule | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=7, hasResultCacheMisses=2
|
||||
PASS: dir=auto text mutation invalidates :has(:empty) | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: checked property mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: disabled attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: enabled attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: required attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: optional attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: placeholder shown value mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: lang attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: dir attribute mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: link href mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: any-link href mutation invalidates :has() | styleInvalidations=0, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,50 +1,50 @@
|
|||
RESULT: adjacent match stops after plain element inserted between operands: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent match stops after plain element inserted between operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match stops after plain element inserted between operands | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent match starts after plain middle element is removed: initial=base expectedInitial=base, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element is removed | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element is removed | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent match starts after plain middle element moves after right operand: initial=base expectedInitial=base, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element moves after right operand | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element moves after right operand | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent match stops after trailing plain element moves between operands: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent match stops after trailing plain element moves between operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match stops after trailing plain element moves between operands | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent attribute right operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent attribute right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent attribute right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent id left operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent id left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent id left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent tag operands stop after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent tag operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent tag operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: child-scoped adjacent operands stop after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: child-scoped adjacent operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: child-scoped adjacent operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: nested target is invalidated when adjacent match stops: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: nested target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: nested target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: direct child target is invalidated when adjacent match stops: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: direct child target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: direct child target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: is right operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: is right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: is right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: where left operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: where left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: where left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: selector list argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: selector list argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
|
||||
PASS: non-subject :has sibling combinator: selector list argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
|
||||
RESULT: descendant container adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: descendant container adjacent argument stops after plain insertion | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: descendant container adjacent argument stops after plain insertion | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: descendant container adjacent argument starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: descendant container adjacent argument starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: descendant container adjacent argument starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: outer id anchor with adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: outer id anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: outer id anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: outer class chain anchor with adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: outer class chain anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: outer class chain anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: custom element spacer stops adjacent match: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: custom element spacer stops adjacent match | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: custom element spacer stops adjacent match | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: shadow-local adjacent match stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: shadow-local adjacent match stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: shadow-local adjacent match stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: shadow-local adjacent match starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: shadow-local adjacent match starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: shadow-local adjacent match starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: subsequent sibling with structural pseudo stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: subsequent sibling with structural pseudo starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent match survives plain insertion before operands: initial=match expectedInitial=match, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: adjacent match survives plain insertion before operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match survives plain insertion before operands | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent mismatch survives plain insertion when right operand does not match: initial=base expectedInitial=base, after=base expectedAfter=base
|
||||
PASS: non-subject :has sibling combinator: adjacent mismatch survives plain insertion when right operand does not match | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent mismatch survives plain insertion when right operand does not match | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
RESULT: adjacent match survives removing unrelated trailing plain element: initial=match expectedInitial=match, after=match expectedAfter=match
|
||||
PASS: non-subject :has sibling combinator: adjacent match survives removing unrelated trailing plain element | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: non-subject :has sibling combinator: adjacent match survives removing unrelated trailing plain element | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
PASS: child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -97,7 +97,7 @@ PASS: child mutation: document: :has(:not(.miss)) after non-miss child append |
|
|||
PASS: child mutation: document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document-styled-use-shadow: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: document-styled-use-shadow: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document-styled-use-shadow: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -192,7 +192,7 @@ PASS: child mutation: document-styled-use-shadow: :has(:not(.miss)) after non-mi
|
|||
PASS: child mutation: document-styled-use-shadow: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document-styled-use-shadow: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: document-styled-use-shadow: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-internal: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-internal: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -291,7 +291,7 @@ PASS: child mutation: shadow-internal: :has(:not(.miss)) after non-miss child ap
|
|||
PASS: child mutation: shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-host: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: shadow-host: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-host: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -387,7 +387,7 @@ PASS: child mutation: shadow-host: :has(:not(.miss)) after non-miss child append
|
|||
PASS: child mutation: shadow-host: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-host: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: shadow-host: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-default: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-default: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-default: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -486,7 +486,7 @@ PASS: child mutation: slotted-default: :has(:not(.miss)) after non-miss child ap
|
|||
PASS: child mutation: slotted-default: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-named: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-named: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-named: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -585,7 +585,7 @@ PASS: child mutation: slotted-named: :has(:not(.miss)) after non-miss child appe
|
|||
PASS: child mutation: slotted-named: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-named: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-named: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-default: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-default: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-default: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -681,7 +681,7 @@ PASS: child mutation: slotted-shadow-host-default: :has(:not(.miss)) after non-m
|
|||
PASS: child mutation: slotted-shadow-host-default: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-named: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: child mutation: slotted-shadow-host-named: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-named: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -777,7 +777,7 @@ PASS: child mutation: slotted-shadow-host-named: :has(:not(.miss)) after non-mis
|
|||
PASS: child mutation: slotted-shadow-host-named: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-named: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: child mutation: slotted-shadow-host-named: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation without warmup: document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -948,7 +948,7 @@ PASS: pseudo-element child mutation: document: :has(:nth-child(even).hit) after
|
|||
PASS: pseudo-element child mutation without warmup: document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation without warmup: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -1119,7 +1119,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(:nth-child(even).hit)
|
|||
PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-host: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: pseudo-element child mutation: shadow-host: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
PASS: stress warm child mutation: part-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-document: :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-document: :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-document: :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-document: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -583,12 +583,12 @@ PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(
|
|||
PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4
|
||||
PASS: stress warm child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-document: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
PASS: detached child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-internal: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -193,8 +193,8 @@ PASS: detached child mutation: part-shadow-internal: :has(:nth-child(even).hit)
|
|||
PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=5, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
|
|
@ -385,8 +385,8 @@ PASS: detached child mutation: part-shadow-host-internal: :has(:nth-child(even).
|
|||
PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=15, hasResultCacheHits=5, hasResultCacheMisses=6
|
||||
PASS: detached child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -577,8 +577,8 @@ PASS: detached child mutation: part-shadow-ancestor: :has(:nth-child(even).hit)
|
|||
PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2
|
||||
|
|
@ -190,8 +190,8 @@ PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth
|
|||
PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2
|
||||
|
|
@ -382,8 +382,8 @@ PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has
|
|||
PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3
|
||||
|
|
@ -574,8 +574,8 @@ PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth
|
|||
PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
PASS: stress warm child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-internal: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -196,8 +196,8 @@ PASS: stress warm child mutation: part-shadow-internal: :has(:nth-child(even).hi
|
|||
PASS: stress cold child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
|
|
@ -388,8 +388,8 @@ PASS: stress warm child mutation: part-shadow-host-internal: :has(:nth-child(eve
|
|||
PASS: stress cold child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -580,8 +580,8 @@ PASS: stress warm child mutation: part-shadow-ancestor: :has(:nth-child(even).hi
|
|||
PASS: stress cold child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
PASS: detached child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-default: :empty becomes false after textContent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-default: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-default: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -97,7 +97,7 @@ PASS: detached child mutation: slotted-default: :has(:not(.miss)) after non-miss
|
|||
PASS: detached child mutation: slotted-default: :has(:not(:empty)) after text child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-named: :empty becomes false after textContent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-named: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-named: mixed-case SVG type selector with :not(:empty) becomes true after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -196,7 +196,7 @@ PASS: detached child mutation: slotted-named: :has(:not(.miss)) after non-miss c
|
|||
PASS: detached child mutation: slotted-named: :has(:not(:empty)) after text child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-named: :has(:nth-child(even).hit) after even child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-named: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=11, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :empty becomes false after textContent | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit) after direct child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit) after DocumentFragment append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -292,7 +292,7 @@ PASS: detached child mutation: slotted-shadow-host-default: :has(:not(.miss)) af
|
|||
PASS: detached child mutation: slotted-shadow-host-default: :has(:not(:empty)) after text child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=8, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=11, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-named: :empty becomes false after textContent | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: slotted-shadow-host-named: :has(.hit) after direct child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-named: :has(.hit) after DocumentFragment append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
PASS: stress warm child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-default: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-default: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-default: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-default: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -196,8 +196,8 @@ PASS: stress warm child mutation: slotted-default: :has(:nth-child(even).hit) af
|
|||
PASS: stress cold child mutation: slotted-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: slotted-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-named: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-named: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-named: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-named: mixed-case SVG type selector with :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -394,8 +394,8 @@ PASS: stress warm child mutation: slotted-named: :has(:nth-child(even).hit) afte
|
|||
PASS: stress cold child mutation: slotted-named: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-named: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: slotted-named: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-default: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-default: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-default: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-default: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
@ -586,8 +586,8 @@ PASS: stress warm child mutation: slotted-shadow-host-default: :has(:nth-child(e
|
|||
PASS: stress cold child mutation: slotted-shadow-host-default: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-shadow-host-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress cold child mutation: slotted-shadow-host-default: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-named: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-named: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: slotted-shadow-host-named: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: slotted-shadow-host-named: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
PASS: stress warm child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: document: :empty becomes false after element append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: document: :empty becomes false after element append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: document: :empty becomes false after element append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -583,12 +583,12 @@ PASS: stress warm pseudo-element child mutation: document: :has(:nth-child(odd).
|
|||
PASS: stress cold pseudo-element child mutation: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
@ -1168,12 +1168,12 @@ PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:nth-chil
|
|||
PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: stress warm child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: shadow-host: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: shadow-host: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: shadow-host: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: shadow-host: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
PASS: stress warm child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: detached pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after element append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm child mutation: document-styled-use-shadow: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress cold child mutation: document-styled-use-shadow: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
|
|||
|
|
@ -1,39 +1,39 @@
|
|||
PASS: detached child mutation: document: :has(.hit) after direct child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit) after direct child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit) after direct child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit, .fallback) after first-list child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit) after direct child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit, .fallback) after first-list child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
|
||||
PASS: detached child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=2, hasResultCacheMisses=7
|
||||
PASS: detached child mutation: document: :has(.hit) after direct child append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit) after direct child append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=4, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit) after direct child append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=11, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-default: :has(.hit, .fallback) after first-list child append | styleInvalidations=9, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit) after direct child append | styleInvalidations=11, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=13, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: slotted-shadow-host-default: :has(.hit, .fallback) after first-list child append | styleInvalidations=11, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
|
||||
PASS: detached child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6
|
||||
PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1
|
||||
PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=12, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=2, hasResultCacheMisses=7
|
||||
PASS: precomputed detached insertion: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: precomputed detached insertion stress append: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
PASS: precomputed detached insertion stress prepend: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0
|
||||
|
|
|
|||
|
|
@ -1,10 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="../include.js"></script>
|
||||
<style>
|
||||
body.hide-pending-descendant #pending-descendant-invalidation-target {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#pending-has-invalidation-container:has(.hide-target) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.shrink-media-query-iframe #parent-pending-media-query-iframe {
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
body.hide-pending-slotted #pending-invalidation-slotted-target {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#computed-style-hidden-subtree {
|
||||
display: none;
|
||||
color: rgb(1, 2, 3);
|
||||
}
|
||||
|
||||
#computed-style-hidden-subtree.changed {
|
||||
color: rgb(4, 5, 6);
|
||||
}
|
||||
</style>
|
||||
<input id="visible">
|
||||
<div id="hidden-container" hidden>
|
||||
<input id="hidden-ancestor">
|
||||
</div>
|
||||
<input id="display-none" style="display: none">
|
||||
<input id="display-none-after-style-change" style="width: 123px">
|
||||
<div id="display-contents" style="display: contents" tabindex="0">display contents</div>
|
||||
<div id="slotted-focus-host">
|
||||
<input id="slotted-hidden-focus-target">
|
||||
|
|
@ -13,21 +40,52 @@
|
|||
<div id="ancestor-hidden-after-focus">
|
||||
<input id="focused-then-ancestor-hidden">
|
||||
</div>
|
||||
<div id="display-none-ancestor-after-style-change">
|
||||
<input id="display-none-ancestor-target">
|
||||
</div>
|
||||
<input id="animated-display-none-target">
|
||||
<div id="animated-display-none-ancestor">
|
||||
<input id="animated-display-none-ancestor-target">
|
||||
</div>
|
||||
<input id="pending-descendant-invalidation-target">
|
||||
<div id="pending-has-invalidation-container">
|
||||
<input id="pending-has-invalidation-target">
|
||||
</div>
|
||||
<div id="pending-invalidation-slotted-host">
|
||||
<input id="pending-invalidation-slotted-target">
|
||||
</div>
|
||||
<div id="computed-style-hidden-subtree">
|
||||
<span id="computed-style-hidden-target"></span>
|
||||
</div>
|
||||
<script>
|
||||
test(() => {
|
||||
promiseTest(async () => {
|
||||
const visible = document.getElementById("visible");
|
||||
const hiddenAncestor = document.getElementById("hidden-ancestor");
|
||||
const hiddenContainer = document.getElementById("hidden-container");
|
||||
const displayNone = document.getElementById("display-none");
|
||||
const displayNoneAfterStyleChange = document.getElementById("display-none-after-style-change");
|
||||
const displayContents = document.getElementById("display-contents");
|
||||
const slottedFocusHost = document.getElementById("slotted-focus-host");
|
||||
const slottedHiddenFocusTarget = document.getElementById("slotted-hidden-focus-target");
|
||||
const focusedThenDisplayNone = document.getElementById("focused-then-display-none");
|
||||
const ancestorHiddenAfterFocus = document.getElementById("ancestor-hidden-after-focus");
|
||||
const focusedThenAncestorHidden = document.getElementById("focused-then-ancestor-hidden");
|
||||
const displayNoneAncestorAfterStyleChange = document.getElementById("display-none-ancestor-after-style-change");
|
||||
const displayNoneAncestorTarget = document.getElementById("display-none-ancestor-target");
|
||||
const animatedDisplayNoneTarget = document.getElementById("animated-display-none-target");
|
||||
const animatedDisplayNoneAncestor = document.getElementById("animated-display-none-ancestor");
|
||||
const animatedDisplayNoneAncestorTarget = document.getElementById("animated-display-none-ancestor-target");
|
||||
const pendingDescendantInvalidationTarget = document.getElementById("pending-descendant-invalidation-target");
|
||||
const pendingHasInvalidationContainer = document.getElementById("pending-has-invalidation-container");
|
||||
const pendingHasInvalidationTarget = document.getElementById("pending-has-invalidation-target");
|
||||
const pendingInvalidationSlottedHost = document.getElementById("pending-invalidation-slotted-host");
|
||||
const pendingInvalidationSlottedTarget = document.getElementById("pending-invalidation-slotted-target");
|
||||
const computedStyleHiddenSubtree = document.getElementById("computed-style-hidden-subtree");
|
||||
const computedStyleHiddenTarget = document.getElementById("computed-style-hidden-target");
|
||||
const slottedShadowRoot = slottedFocusHost.attachShadow({ mode: "open" });
|
||||
slottedShadowRoot.innerHTML = `<div id="slot-container" style="display: none"><slot></slot></div>`;
|
||||
const slotContainer = slottedShadowRoot.getElementById("slot-container");
|
||||
pendingInvalidationSlottedHost.attachShadow({ mode: "open" }).innerHTML = `<slot></slot>`;
|
||||
|
||||
visible.focus();
|
||||
println(`after visible.focus(): ${document.activeElement.id}`);
|
||||
|
|
@ -39,6 +97,107 @@
|
|||
displayNone.focus();
|
||||
println(`after display none input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
displayNoneAfterStyleChange.offsetWidth;
|
||||
displayNoneAfterStyleChange.style.display = "none";
|
||||
displayNoneAfterStyleChange.focus();
|
||||
println(`after display none from dirty style input.focus(): ${document.activeElement.id}`);
|
||||
println(`after display none from dirty style offsetWidth: ${displayNoneAfterStyleChange.offsetWidth}`);
|
||||
|
||||
displayNoneAncestorAfterStyleChange.style.display = "none";
|
||||
displayNoneAncestorTarget.focus();
|
||||
println(`after display none ancestor from dirty style input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
getComputedStyle(computedStyleHiddenTarget).color;
|
||||
computedStyleHiddenSubtree.classList.add("changed");
|
||||
println(`after getComputedStyle in dirty display none subtree: ${getComputedStyle(computedStyleHiddenTarget).color}`);
|
||||
|
||||
getComputedStyle(animatedDisplayNoneTarget).display;
|
||||
const displayNoneAnimation = animatedDisplayNoneTarget.animate({ display: ["block", "none"] }, { duration: 1000, fill: "forwards" });
|
||||
displayNoneAnimation.pause();
|
||||
displayNoneAnimation.currentTime = 1000;
|
||||
animatedDisplayNoneTarget.focus();
|
||||
println(`after display none from pending animation input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
getComputedStyle(animatedDisplayNoneAncestor).display;
|
||||
const ancestorDisplayNoneAnimation = animatedDisplayNoneAncestor.animate({ display: ["block", "none"] }, { duration: 1000, fill: "forwards" });
|
||||
ancestorDisplayNoneAnimation.pause();
|
||||
ancestorDisplayNoneAnimation.currentTime = 1000;
|
||||
animatedDisplayNoneAncestorTarget.focus();
|
||||
println(`after display none ancestor from pending animation input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
getComputedStyle(pendingDescendantInvalidationTarget).display;
|
||||
document.body.classList.add("hide-pending-descendant");
|
||||
pendingDescendantInvalidationTarget.focus();
|
||||
println(`after display none from pending descendant invalidation input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
getComputedStyle(pendingInvalidationSlottedTarget).display;
|
||||
document.body.classList.add("hide-pending-slotted");
|
||||
visible.focus();
|
||||
pendingInvalidationSlottedTarget.offsetWidth;
|
||||
pendingInvalidationSlottedTarget.focus();
|
||||
println(`after display none from pending slotted invalidation input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
getComputedStyle(pendingHasInvalidationContainer).display;
|
||||
const hideTarget = document.createElement("span");
|
||||
hideTarget.className = "hide-target";
|
||||
pendingHasInvalidationContainer.append(hideTarget);
|
||||
pendingHasInvalidationTarget.focus();
|
||||
println(`after display none from pending :has invalidation input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
const mediaQueryIframe = document.createElement("iframe");
|
||||
mediaQueryIframe.width = "200";
|
||||
mediaQueryIframe.height = "50";
|
||||
mediaQueryIframe.srcdoc = `
|
||||
<style>
|
||||
@media (max-width: 100px) {
|
||||
#media-query-focus-target {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<input id="media-query-focus-target">
|
||||
`;
|
||||
await new Promise(resolve => {
|
||||
mediaQueryIframe.addEventListener("load", resolve, { once: true });
|
||||
document.body.append(mediaQueryIframe);
|
||||
});
|
||||
const mediaQueryFocusTarget = mediaQueryIframe.contentDocument.getElementById("media-query-focus-target");
|
||||
getComputedStyle(mediaQueryFocusTarget).display;
|
||||
mediaQueryIframe.width = "50";
|
||||
mediaQueryIframe.getBoundingClientRect();
|
||||
mediaQueryFocusTarget.focus();
|
||||
println(`after display none from pending media query input.focus(): ${mediaQueryIframe.contentDocument.activeElement.tagName}`);
|
||||
|
||||
const parentPendingMediaQueryIframe = document.createElement("iframe");
|
||||
parentPendingMediaQueryIframe.id = "parent-pending-media-query-iframe";
|
||||
parentPendingMediaQueryIframe.width = "200";
|
||||
parentPendingMediaQueryIframe.height = "50";
|
||||
parentPendingMediaQueryIframe.srcdoc = `
|
||||
<style>
|
||||
@media (max-width: 100px) {
|
||||
#parent-media-query-focus-target {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<input id="parent-media-query-focus-target">
|
||||
`;
|
||||
await new Promise(resolve => {
|
||||
parentPendingMediaQueryIframe.addEventListener("load", resolve, { once: true });
|
||||
document.body.append(parentPendingMediaQueryIframe);
|
||||
});
|
||||
const parentMediaQueryFocusTarget = parentPendingMediaQueryIframe.contentDocument.getElementById("parent-media-query-focus-target");
|
||||
getComputedStyle(parentMediaQueryFocusTarget).display;
|
||||
document.body.classList.add("shrink-media-query-iframe");
|
||||
parentMediaQueryFocusTarget.focus();
|
||||
println(`after display none from pending parent media query input.focus(): ${parentPendingMediaQueryIframe.contentDocument.activeElement.tagName}`);
|
||||
|
||||
visible.focus();
|
||||
const detached = document.createElement("input");
|
||||
detached.id = "detached";
|
||||
detached.focus();
|
||||
println(`after detached input.focus(): ${document.activeElement.id}`);
|
||||
|
||||
displayContents.focus();
|
||||
println(`after display contents div.focus(): ${document.activeElement.id}`);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
.red { color: red; }
|
||||
.green { color: green; }
|
||||
.blue { color: blue; }
|
||||
#whole-subtree-target[open] span { color: green; }
|
||||
#whole-subtree-target:not([open]) span { color: red; }
|
||||
</style>
|
||||
<div id="parent">
|
||||
<div id="target">hello</div>
|
||||
|
|
@ -12,9 +14,15 @@
|
|||
</div>
|
||||
<div id="slot-host">
|
||||
<template shadowrootmode="open">
|
||||
<style>
|
||||
slot { --slot-color: red; }
|
||||
slot.green { --slot-color: green; }
|
||||
::slotted(.uses-slot-custom-property) { color: var(--slot-color); }
|
||||
</style>
|
||||
<slot id="the-slot"></slot>
|
||||
</template>
|
||||
<span id="slotted-child">slotted</span>
|
||||
<span id="slotted-custom-property-child" class="uses-slot-custom-property">slotted custom property</span>
|
||||
</div>
|
||||
<div id="shadow-host-2">
|
||||
<template shadowrootmode="open">
|
||||
|
|
@ -27,6 +35,17 @@
|
|||
<div id="inherit-parent" class="red">
|
||||
<div id="inherit-child">inherits</div>
|
||||
</div>
|
||||
<details id="whole-subtree-target" open>
|
||||
<summary>summary</summary>
|
||||
<div>
|
||||
<span id="whole-subtree-path-target">path target</span>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<span id="whole-subtree-off-path-target">off path target</span>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
<script>
|
||||
test(() => {
|
||||
const target = document.getElementById("target");
|
||||
|
|
@ -36,12 +55,19 @@
|
|||
const slotHost = document.getElementById("slot-host");
|
||||
const inheritParent = document.getElementById("inherit-parent");
|
||||
const inheritChild = document.getElementById("inherit-child");
|
||||
const slottedCustomPropertyChild = document.getElementById("slotted-custom-property-child");
|
||||
const wholeSubtreeTarget = document.getElementById("whole-subtree-target");
|
||||
const wholeSubtreePathTarget = document.getElementById("whole-subtree-path-target");
|
||||
const wholeSubtreeOffPathTarget = document.getElementById("whole-subtree-off-path-target");
|
||||
|
||||
// Force initial style computation.
|
||||
getComputedStyle(target).color;
|
||||
getComputedStyle(sibling).color;
|
||||
getComputedStyle(slottedChild).color;
|
||||
getComputedStyle(slottedCustomPropertyChild).color;
|
||||
getComputedStyle(inheritChild).color;
|
||||
getComputedStyle(wholeSubtreePathTarget).color;
|
||||
getComputedStyle(wholeSubtreeOffPathTarget).color;
|
||||
|
||||
// 1. Reading computed style without changes should return correct values.
|
||||
println(`1: ${getComputedStyle(target).color}`);
|
||||
|
|
@ -86,5 +112,18 @@
|
|||
// 8. Multiple reads without changes return consistent values.
|
||||
println(`8a: ${getComputedStyle(target).color}`);
|
||||
println(`8b: ${getComputedStyle(target).color}`);
|
||||
|
||||
// 9. A targeted update through one branch must not clear whole-subtree
|
||||
// invalidation for descendants in other branches.
|
||||
wholeSubtreeTarget.open = false;
|
||||
println(`9a: ${getComputedStyle(wholeSubtreePathTarget).color}`);
|
||||
document.body.offsetWidth;
|
||||
println(`9b: ${getComputedStyle(wholeSubtreeOffPathTarget).color}`);
|
||||
|
||||
// 10. A targeted update of a slot whose custom properties changed must
|
||||
// dirty assigned slottables that inherit through the flat tree.
|
||||
theSlot.classList.add("green");
|
||||
getComputedStyle(theSlot).display;
|
||||
println(`10: ${getComputedStyle(slottedCustomPropertyChild).color}`);
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
assertEqual("unmatched 2 after ancestor attribute change", readProbe(unmatched2), BASE);
|
||||
assertEqual("unmatched 3 after ancestor attribute change", readProbe(unmatched3), BASE);
|
||||
assertEqual("matched after ancestor attribute change", readProbe(matched), MATCH);
|
||||
printPassWithCounters("attribute class match set requires class attribute presence");
|
||||
printPassWithoutRecomputeCounters("attribute class match set requires class attribute presence");
|
||||
document.getElementById("class-presence-style").remove();
|
||||
|
||||
runClassRemovalCase("[class] descendant loses match", "[class] .target", fixture => {
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@
|
|||
mutating.classList.add("needle");
|
||||
assertEqual("needle target after relevant mutation", readProbe(needleTarget), MATCH);
|
||||
assertEqual("other target after unrelated mutation", readProbe(otherTarget), BASE);
|
||||
printPassWithCounters("class mutation invalidates affected :has() rule");
|
||||
printPassWithoutRecomputeCounters("class mutation invalidates affected :has() rule");
|
||||
|
||||
resetStyleCounters();
|
||||
mutating.classList.add("other");
|
||||
assertEqual("other target after relevant mutation", readProbe(otherTarget), MATCH);
|
||||
printPassWithCounters("class mutation still invalidates matching :has() rule");
|
||||
printPassWithoutRecomputeCounters("class mutation still invalidates matching :has() rule");
|
||||
|
||||
const style = addStyle(document.head, `.empty-dir-auto-scope .outer:has(.auto:empty) .target { ${MATCH_DECLARATION} }`);
|
||||
const fixture = makeElement("section", { className: "empty-dir-auto-scope" });
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
resetStyleCounters();
|
||||
text.data = "text";
|
||||
assertEqual("dir=auto empty text after mutation", readProbe(target), BASE);
|
||||
printPassWithCounters("dir=auto text mutation invalidates :has(:empty)");
|
||||
printPassWithoutRecomputeCounters("dir=auto text mutation invalidates :has(:empty)");
|
||||
|
||||
style.remove();
|
||||
fixture.remove();
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
resetStyleCounters();
|
||||
mutate(subject);
|
||||
assertEqual(`${name} after mutation`, readProbe(target), expectedAfter ? MATCH : BASE);
|
||||
printPassWithCounters(`${name} invalidates :has()`);
|
||||
printPassWithoutRecomputeCounters(`${name} invalidates :has()`);
|
||||
|
||||
style.remove();
|
||||
fixture.remove();
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@
|
|||
selectorCase.mutate(context);
|
||||
const after = readProbe(context.target);
|
||||
println(`RESULT: ${selectorCase.name}: initial=${initial} expectedInitial=${selectorCase.initial ? MATCH : BASE}, after=${after} expectedAfter=${selectorCase.after ? MATCH : BASE}`);
|
||||
printPassWithCounters(`non-subject :has sibling combinator: ${selectorCase.name}`);
|
||||
printPassWithoutRecomputeCounters(`non-subject :has sibling combinator: ${selectorCase.name}`);
|
||||
} finally {
|
||||
style.remove();
|
||||
fixture.remove();
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
const selectorCase = childMutationCases.find(c => c.name === name);
|
||||
if (!selectorCase)
|
||||
throw new Error(`detached scope refers to unknown case: ${name}`);
|
||||
runDetachedReconnectCase(scope, selectorCase);
|
||||
runDetachedReconnectCase(scope, selectorCase, "::before");
|
||||
runDetachedReconnectCase(scope, selectorCase, "", { omitRecomputeCounters: true });
|
||||
runDetachedReconnectCase(scope, selectorCase, "::before", { omitRecomputeCounters: true });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,17 @@ function styleCounterSummary() {
|
|||
);
|
||||
}
|
||||
|
||||
function styleCounterSummaryWithoutRecomputations() {
|
||||
const counters = internals.getStyleInvalidationCounters();
|
||||
return (
|
||||
`styleInvalidations=${counters.styleInvalidations}, fullStyleInvalidations=${counters.fullStyleInvalidations}, ` +
|
||||
`hasAncestorWalkInvocations=${counters.hasAncestorWalkInvocations}, ` +
|
||||
`hasInvalidationMetadataCandidates=${counters.hasInvalidationMetadataCandidates}, ` +
|
||||
`hasMatchInvocations=${counters.hasMatchInvocations}, ` +
|
||||
`hasResultCacheHits=${counters.hasResultCacheHits}, hasResultCacheMisses=${counters.hasResultCacheMisses}`
|
||||
);
|
||||
}
|
||||
|
||||
function styleCounters() {
|
||||
return internals.getStyleInvalidationCounters();
|
||||
}
|
||||
|
|
@ -34,6 +45,10 @@ function printPassWithCounters(testName) {
|
|||
println(`PASS: ${testName} | ${styleCounterSummary()}`);
|
||||
}
|
||||
|
||||
function printPassWithoutRecomputeCounters(testName) {
|
||||
println(`PASS: ${testName} | ${styleCounterSummaryWithoutRecomputations()}`);
|
||||
}
|
||||
|
||||
function hasWalkCounterDetailSummary() {
|
||||
const counters = styleCounters();
|
||||
return (
|
||||
|
|
@ -277,6 +292,7 @@ function runCase({
|
|||
after,
|
||||
pseudoElement = "",
|
||||
skipInitialRead = false,
|
||||
omitRecomputeCounters = false,
|
||||
fixtureOptions = {},
|
||||
}) {
|
||||
if (
|
||||
|
|
@ -297,7 +313,8 @@ function runCase({
|
|||
resetStyleCounters();
|
||||
mutate(subject, fixture);
|
||||
assertEqual(`${testName} after mutation`, readProbe(target, pseudoElement), after ? MATCH : BASE);
|
||||
printPassWithCounters(testName);
|
||||
if (omitRecomputeCounters) printPassWithoutRecomputeCounters(testName);
|
||||
else printPassWithCounters(testName);
|
||||
} finally {
|
||||
cleanup();
|
||||
}
|
||||
|
|
@ -431,6 +448,7 @@ const childMutationCases = [
|
|||
selector: ":empty",
|
||||
initial: true,
|
||||
after: false,
|
||||
omitRecomputeCounters: true,
|
||||
mutate: subject => subject.appendChild(makeElement("span")),
|
||||
},
|
||||
{
|
||||
|
|
@ -2036,13 +2054,14 @@ const descendantStateMutationCases = [
|
|||
},
|
||||
];
|
||||
|
||||
function runDetachedReconnectCase(scope, selectorCase, pseudoElement = "") {
|
||||
function runDetachedReconnectCase(scope, selectorCase, pseudoElement = "", options = {}) {
|
||||
runCase({
|
||||
suite: pseudoElement ? "detached pseudo-element child mutation" : "detached child mutation",
|
||||
scope,
|
||||
initial: selectorCase.initial,
|
||||
after: selectorCase.after,
|
||||
pseudoElement,
|
||||
omitRecomputeCounters: options.omitRecomputeCounters,
|
||||
...selectorCase,
|
||||
mutate: (subject, fixture) => {
|
||||
fixture.remove();
|
||||
|
|
|
|||
Loading…
Reference in a new issue