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=3, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
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, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2
