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 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 PASS: detached child mutation: part-shadow-internal: mixed-case SVG type selector with :not(:empty) becomes true 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: mixed-case SVG foreignObject 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 PASS: detached child mutation: part-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=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-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=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=3 PASS: detached child mutation: part-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=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-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=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | 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(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | 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(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) after last 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(.hit:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second 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(.hit + .after) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling 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(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-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=13, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-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=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-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=14, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :empty becomes true after replaceChildren | 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 true after replaceChildren | styleInvalidations=7, 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: :empty becomes true after textContent clear | styleInvalidations=7, 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 true after textContent clear | styleInvalidations=7, 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: :empty stays true after comment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: part-shadow-internal: :empty stays true after comment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=5, 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 whitespace text append | 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 whitespace text append | 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: :dir(rtl) after dir=auto text mutation | 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: :dir(rtl) after dir=auto text mutation | 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: :has(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling 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(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(2)) after second 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-last-child(2)) after trailing child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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-last-child(2)) after trailing 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(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=7, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=7, hasResultCacheMisses=7 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling 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(.hit:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last 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(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed 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(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling 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(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=5, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=6, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | 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(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling 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(.hit + .after) becomes false after middle child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached 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=2, hasResultCacheHits=1, hasResultCacheMisses=1 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 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 PASS: detached pseudo-element 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=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after DocumentFragment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after DocumentFragment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after existing child move into parent | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, 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(.hit) after existing child move into parent | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after nested child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, 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(.hit) after nested child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=4 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 PASS: detached pseudo-element 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=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=11, 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-host-internal: :has(> .hit:first-child) after prepend | 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(> .hit:first-child) after insertBefore | styleInvalidations=11, 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-host-internal: :has(> .hit:first-child) after insertBefore | 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(> .hit) ignores nested child append | styleInvalidations=11, 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-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(span.hit) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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([data-hit]) after attribute-bearing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(#hit-id) after identified child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(#hit-id) after identified child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:is(.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 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:where(.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 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) 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 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit:first-child) after first child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=11, 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-host-internal: :has(.hit:last-child) after last 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(.hit:nth-child(2)) after second child append | styleInvalidations=11, 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-host-internal: :has(.hit:nth-child(2)) after second 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(.hit + .after) after adjacent sibling append | styleInvalidations=11, 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-host-internal: :has(.hit + .after) after adjacent sibling 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(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, 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(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, 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(> .wrapper > .hit) after nested structure append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit, .fallback) after first-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=5, hasResultCacheMisses=7 PASS: detached child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:empty) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after replaceChild | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after replaceChild | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after replaceChildren | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-internal: :empty becomes true after replaceChildren | 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 true after replaceChildren | 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: :empty becomes true after textContent clear | styleInvalidations=9, 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 true after textContent clear | 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: part-shadow-host-internal: :empty stays true after comment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, 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-internal: :empty stays true after comment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=6, 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 whitespace text append | 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 whitespace text append | 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: :dir(rtl) after dir=auto text mutation | styleInvalidations=10, 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-internal: :dir(rtl) after dir=auto text mutation | styleInvalidations=10, 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-host-internal: :has(*) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(*) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(> *) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(> *) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:checked) after checked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:not(:checked)) after unchecked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, 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(:enabled) after enabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(:disabled) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, 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(:disabled) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(:required) after required input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, 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(:required) after required input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, 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(:optional) after optional input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, 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(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:dir(rtl)) after dir=auto child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:lang(he)) after Hebrew language child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:any-link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=11, 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-host-internal: :has(:only-child) becomes false after sibling 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(2)) after second child append | styleInvalidations=11, 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-host-internal: :has(:nth-child(2)) after second 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-last-child(2)) after trailing child append | styleInvalidations=11, 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-host-internal: :has(:nth-last-child(2)) after trailing 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(:first-of-type) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:first-of-type) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, 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(:is(:checked, :disabled)) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:where(:empty, :checked)) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(rect.hit) after SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(rect.hit) after SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(> rect.hit) after direct SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, 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(.outer .middle .hit) after deep descendant append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=7, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, 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(> .outer .hit) after child subtree append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, 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(> .outer > .middle > .hit) after exact deep append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, 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(.miss .hit) ignores hit without required ancestor | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, 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(.before + .hit) after adjacent pair append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, 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(.before ~ .hit) after separated sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, 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(.hit + .after + .tail) after sibling chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=5, 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(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=17, hasResultCacheHits=7, hasResultCacheMisses=8 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=11, 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-host-internal: :has(.hit:only-child) becomes false after sibling 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(.hit:nth-last-child(1)) after last child append | styleInvalidations=11, 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-host-internal: :has(.hit:nth-last-child(1)) after last 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(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, 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(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=11, 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-host-internal: :has(.hit:nth-of-type(2)) after second typed 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(.hit:only-of-type) after only typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit:only-of-type) after only typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=11, 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-host-internal: :has(.hit:only-of-type) becomes false after same type sibling 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(:is(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:is(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:where(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=5, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-internal: :is(: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 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :is(:has(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :where(: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 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :where(:has(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=18, hasResultCacheHits=6, hasResultCacheMisses=8 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, 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(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, 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(.hit) after append with multiple arguments | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=11, 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-host-internal: :has(.hit:first-child + .after) after prepend before existing child | 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(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=11, 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-host-internal: :has(.hit:last-child) becomes false after trailing sibling 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(.hit + .after) becomes false after middle child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=4, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after replaceWith matching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after cloned child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(.hit) after fragment replaceChildren | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:not(.miss)) after non-miss child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, 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(:not(:empty)) after text child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached 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=2, hasResultCacheHits=1, hasResultCacheMisses=1 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 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 PASS: detached pseudo-element 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=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=11, 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: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=11, 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: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=3 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 PASS: detached pseudo-element 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=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=11, 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-ancestor: :has(> .hit:first-child) after prepend | 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(> .hit:first-child) after insertBefore | styleInvalidations=11, 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-ancestor: :has(> .hit:first-child) after insertBefore | 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(> .hit) ignores nested 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 pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested 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(span.hit) after typed 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 pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing 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 pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(#hit-id) after identified 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 pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:is(.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 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:where(.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 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) 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 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:first-child) after first 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:last-child) after last 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last 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(.hit:nth-child(2)) after second 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second 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(.hit + .after) after adjacent sibling 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling 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(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=11, 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: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after 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 pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=2, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:empty) after empty 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 pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=10, 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-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=10, 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-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :empty becomes true after replaceChildren | styleInvalidations=9, 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 true after replaceChildren | 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: part-shadow-ancestor: :empty becomes true after textContent clear | styleInvalidations=9, 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 true after textContent clear | 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: part-shadow-ancestor: :empty stays true after comment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty stays true after comment append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=6, 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 whitespace text append | 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 whitespace text append | 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: :dir(rtl) after dir=auto text mutation | 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: :dir(rtl) after dir=auto text mutation | 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(*) after 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 pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(> *) after 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 pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox 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 pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox 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 pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=11, 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-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=11, 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-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language 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 pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:link) after linked anchor 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 pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor 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 pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:only-child) after only 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 pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling 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 pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling 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(2)) after second 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 pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second 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-last-child(2)) after trailing 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 pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing 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(:first-of-type) after typed 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 pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty 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 pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(rect.hit) after SVG 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 pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG 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 pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=11, 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: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=7 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-child) after only 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling 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(.hit:nth-last-child(1)) after last 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last 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(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed 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(.hit:only-of-type) after only typed 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling 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(:is(.hit, .fallback)) after second-list 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 pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list 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 pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-ancestor: :is(: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 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :where(: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 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :not(:has(.miss)):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=0, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=2, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=11, 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-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=11, 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: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=11, 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-ancestor: :has(.hit:first-child + .after) after prepend before existing child | 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(.hit:last-child) becomes false after trailing sibling 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling 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(.hit + .after) becomes false after middle child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=10, 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-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=10, 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-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after cloned 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 pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=10, 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-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss 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 pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=11, 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-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached 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=1, hasResultCacheHits=0, hasResultCacheMisses=1 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 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 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 DocumentFragment 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 DocumentFragment 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 existing child move into parent | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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 existing child move into parent | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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 nested child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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 nested child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=4 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:first-child) after prepend | styleInvalidations=13, 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-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=13, 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: :has(> .hit:first-child) after insertBefore | styleInvalidations=13, 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-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=13, 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: :has(> .hit) ignores nested child append | styleInvalidations=13, 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-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=13, 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: :has(span.hit) after typed 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(span.hit) after typed 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([data-hit]) after attribute-bearing 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([data-hit]) after attribute-bearing 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-id) after identified 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-id) after identified 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(:is(.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(:is(.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(:where(.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(:where(.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:not(.miss)) 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:not(.miss)) 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:first-child) after first 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:first-child) after first 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:last-child) after last child append | styleInvalidations=13, 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-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=13, 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: :has(.hit:nth-child(2)) after second child append | styleInvalidations=13, 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-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=13, 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: :has(.hit + .after) after adjacent sibling append | styleInvalidations=13, 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-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=13, 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: :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(> .wrapper > .hit) after nested structure append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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(> .wrapper > .hit) after nested structure append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after 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: :not(:has(.hit)) becomes false after 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, .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: part-shadow-host-ancestor: :has(:empty) after empty 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(:empty) after empty 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 replaceChild | styleInvalidations=13, 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 replaceChild | styleInvalidations=13, 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 replaceChildren | styleInvalidations=13, 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 replaceChildren | styleInvalidations=13, 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) becomes false after child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes true after replaceChildren | 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 true after replaceChildren | 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: :empty becomes true after textContent clear | styleInvalidations=11, 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 true after textContent clear | 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: part-shadow-host-ancestor: :empty stays true after comment append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=7, 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 stays true after comment append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=7, 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 whitespace text append | 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 whitespace text append | 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: :dir(rtl) after dir=auto text mutation | styleInvalidations=12, 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-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=12, 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-ancestor: :has(*) after 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(*) after 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(> *) after 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(> *) after 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(:checked) after checked checkbox 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(:checked) after checked checkbox 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(:checked) becomes false after checked checkbox removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox 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(:not(:checked)) after unchecked checkbox 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(:enabled) after enabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, 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(:enabled) after enabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, 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(:disabled) after disabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, 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(:required) after required input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, 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(:optional) after optional input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, 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(:empty) becomes false after text inserted into only child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=13, 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(:not(:empty)) after non-empty child append | styleInvalidations=13, 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(:dir(rtl)) after dir=auto child append | styleInvalidations=13, 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(:dir(rtl)) after dir=auto child append | styleInvalidations=13, 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(:lang(he)) after Hebrew language 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(:lang(he)) after Hebrew language 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(:link) after linked anchor 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(:link) after linked anchor 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(:any-link) after linked anchor 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(:any-link) after linked anchor 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(:only-child) after only 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(:only-child) after only 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(:only-child) becomes false after sibling append | styleInvalidations=13, 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-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=13, 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: :has(:nth-child(2)) after second child append | styleInvalidations=13, 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-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=13, 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: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=13, 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-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=13, 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: :has(:first-of-type) after typed 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(:first-of-type) after typed 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(:is(:checked, :disabled)) after disabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, 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(:is(:checked, :disabled)) after disabled input append | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty 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(:where(:empty, :checked)) after empty 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(rect.hit) after SVG 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(rect.hit) after SVG 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(> rect.hit) after direct SVG 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(> rect.hit) after direct SVG 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(.outer .middle .hit) after deep descendant append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, 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(.outer .middle .hit) after deep descendant append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, 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(> .outer .hit) after child subtree append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, 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(> .outer > .middle > .hit) after exact deep append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | 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(.miss .hit) ignores hit without required ancestor | 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(.before + .hit) after adjacent pair append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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(.before + .hit) after adjacent pair append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, 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(.before ~ .hit) after separated sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, 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 + .tail) after sibling chain append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=12, 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 ~ .tail) after indirect chain append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=1, hasResultCacheMisses=8 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only 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:only-child) after only 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:only-child) becomes false after sibling append | styleInvalidations=13, 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-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=13, 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: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=13, 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-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=13, 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: :has(.hit:nth-last-child(2)) after trailing child 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:nth-last-child(2)) after trailing child 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:nth-of-type(2)) after second typed child append | styleInvalidations=13, 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-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=13, 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: :has(.hit:only-of-type) after only typed 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:only-of-type) after only typed 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:only-of-type) becomes false after same type sibling append | styleInvalidations=13, 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-host-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=13, 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: :has(:is(.hit, .fallback)) after second-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(:is(.hit, .fallback)) after second-list 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(:where(.hit, .fallback)) after second-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(:where(.hit, .fallback)) after second-list 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):has(.also) after independent children append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6 PASS: detached child mutation: part-shadow-host-ancestor: :is(: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: :is(: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: :where(: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: :where(: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: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=2, hasResultCacheMisses=8 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=13, 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:not(:empty)) after non-empty child append | styleInvalidations=13, 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:empty) becomes false after nested text append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, 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:empty) becomes false after nested text append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, 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 append with multiple arguments | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, 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 append with multiple arguments | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=13, 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-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=13, 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: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=13, 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-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=13, 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: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=8, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=8, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=13, 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 replaceWith matching child | styleInvalidations=13, 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) becomes false after replaceWith nonmatching child | styleInvalidations=13, 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) becomes false after replaceWith nonmatching child | styleInvalidations=13, 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 cloned 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 cloned 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 fragment replaceChildren | styleInvalidations=13, 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 fragment replaceChildren | styleInvalidations=13, 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(:not(.miss)) after non-miss 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(:not(.miss)) after non-miss 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(:not(:empty)) after text child append | styleInvalidations=13, 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(:not(:empty)) after text child append | styleInvalidations=13, 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(:nth-child(even).hit) after even child append | styleInvalidations=13, 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-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=13, 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: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=8, 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(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=8, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=6