RESULT: adjacent match stops after plain element inserted between operands: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent match stops after plain element inserted between operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent match starts after plain middle element is removed: initial=base expectedInitial=base, after=match expectedAfter=match PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element is removed | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent match starts after plain middle element moves after right operand: initial=base expectedInitial=base, after=match expectedAfter=match PASS: non-subject :has sibling combinator: adjacent match starts after plain middle element moves after right operand | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent match stops after trailing plain element moves between operands: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent match stops after trailing plain element moves between operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent attribute right operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent attribute right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent id left operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent id left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent tag operands stop after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent tag operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: child-scoped adjacent operands stop after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: child-scoped adjacent operands stop after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: nested target is invalidated when adjacent match stops: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: nested target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: direct child target is invalidated when adjacent match stops: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: direct child target is invalidated when adjacent match stops | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: is right operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: is right operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: where left operand stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: where left operand stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: selector list argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: selector list argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 RESULT: descendant container adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: descendant container adjacent argument stops after plain insertion | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: descendant container adjacent argument starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match PASS: non-subject :has sibling combinator: descendant container adjacent argument starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: outer id anchor with adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: outer id anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: outer class chain anchor with adjacent argument stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: outer class chain anchor with adjacent argument stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: custom element spacer stops adjacent match: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: custom element spacer stops adjacent match | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: shadow-local adjacent match stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: shadow-local adjacent match stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: shadow-local adjacent match starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match PASS: non-subject :has sibling combinator: shadow-local adjacent match starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: subsequent sibling with structural pseudo stops after plain insertion: initial=match expectedInitial=match, after=base expectedAfter=base PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo stops after plain insertion | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: subsequent sibling with structural pseudo starts after middle removal: initial=base expectedInitial=base, after=match expectedAfter=match PASS: non-subject :has sibling combinator: subsequent sibling with structural pseudo starts after middle removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent match survives plain insertion before operands: initial=match expectedInitial=match, after=match expectedAfter=match PASS: non-subject :has sibling combinator: adjacent match survives plain insertion before operands | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent mismatch survives plain insertion when right operand does not match: initial=base expectedInitial=base, after=base expectedAfter=base PASS: non-subject :has sibling combinator: adjacent mismatch survives plain insertion when right operand does not match | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 RESULT: adjacent match survives removing unrelated trailing plain element: initial=match expectedInitial=match, after=match expectedAfter=match PASS: non-subject :has sibling combinator: adjacent match survives removing unrelated trailing plain element | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1