From 86e0e281a0587c801c474852be303f690cea52ef Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 18 Jun 2026 18:26:51 +0200 Subject: [PATCH] LibWeb: Avoid unnecessary pseudo-element style recomputation Track the synthetic pseudo-elements that matched while computing an originating element's normal style. Store the transient match set as a bitfield, then copy those bits into ComputedProperties. Use them during style invalidation to skip pseudo style recomputation when neither the old nor new originating style matched pseudo rules and no pseudo style already exists. This shaves roughly 500 ms off loading the Ladybird GitHub repository. Materialize synthetic pseudo styles on demand for CSSOM reads so getComputedStyle(element, "::before") still computes skipped styles when script asks for them. Add coverage for a universal pseudo selector, and update style invalidation counter expectations for the reduced work. --- Libraries/LibWeb/CSS/CSSStyleProperties.cpp | 28 + Libraries/LibWeb/CSS/ComputedProperties.cpp | 22 + Libraries/LibWeb/CSS/ComputedProperties.h | 5 + Libraries/LibWeb/CSS/SelectorEngine.cpp | 25 + Libraries/LibWeb/CSS/SelectorEngine.h | 1 + Libraries/LibWeb/CSS/StyleComputer.cpp | 50 +- Libraries/LibWeb/CSS/StyleComputer.h | 3 +- Libraries/LibWeb/DOM/Element.cpp | 20 +- Libraries/LibWeb/DOM/Element.h | 2 +- .../css/getComputedStyle-pseudo-element.txt | 3 + .../structural-child-mutations.txt | 110 +- .../structural-child-part-document-stress.txt | 1016 ++++++------ ...ural-child-part-shadow-detached-stress.txt | 488 +++--- ...ctural-child-part-shadow-pseudo-stress.txt | 1396 ++++++++--------- .../structural-child-stress.txt | 280 ++-- .../structural-child-svg-use-stress.txt | 96 +- .../structural-descendant-detached-stress.txt | 116 +- ...ection-language-detached-pseudo-stress.txt | 384 ++--- ...ndant-direction-language-pseudo-stress.txt | 360 ++--- .../structural-descendant-mutations.txt | 158 +- ...descendant-part-detached-pseudo-stress.txt | 704 ++++----- ...ructural-descendant-part-pseudo-stress.txt | 844 +++++----- ...escendant-state-detached-pseudo-stress.txt | 404 ++--- ...uctural-descendant-state-pseudo-stress.txt | 424 ++--- .../structural-descendant-stress.txt | 144 +- .../structural-descendant-text-stress.txt | 400 ++--- .../structural-detached-reconnect.txt | 18 +- .../structural-shadow-part-exposure.txt | 250 +-- .../css/getComputedStyle-pseudo-element.html | 8 + 29 files changed, 3948 insertions(+), 3811 deletions(-) diff --git a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp index 92d10b6371..2cfa376767 100644 --- a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp +++ b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp @@ -541,6 +541,33 @@ Optional CSSStyleProperties::get_property_internal(PropertyNameAn return get_direct_property(property); } +static void ensure_pseudo_element_style_for_cssom(DOM::AbstractElement abstract_element) +{ + auto pseudo_element = abstract_element.pseudo_element(); + if (!pseudo_element.has_value()) + return; + if (!is_synthetic_pseudo_element(*pseudo_element)) + return; + if (abstract_element.computed_properties()) + return; + + auto& style_computer = abstract_element.document().style_computer(); + style_computer.reset_has_result_cache(); + + auto const* first_ancestor = &abstract_element.element(); + for (auto* ancestor = first_ancestor; ancestor; ancestor = ancestor->parent_or_shadow_host_element()) + style_computer.push_ancestor(*ancestor); + + ScopeGuard pop_ancestors = [&] { + for (auto* ancestor = first_ancestor; ancestor; ancestor = ancestor->parent_or_shadow_host_element()) + style_computer.pop_ancestor(*ancestor); + }; + + bool did_change_custom_properties = false; + auto style = style_computer.compute_pseudo_element_style_if_needed(abstract_element, did_change_custom_properties); + abstract_element.element().set_computed_properties(*pseudo_element, move(style)); +} + Optional CSSStyleProperties::get_direct_property(PropertyNameAndID const& property_name_and_id) const { auto const property_id = property_name_and_id.id(); @@ -588,6 +615,7 @@ Optional CSSStyleProperties::get_direct_property(PropertyNameAndI // so the leaf and its inheritance ancestors may still be stale at this point. if (abstract_element.document().element_needs_style_update(abstract_element)) abstract_element.document().update_style_for_element(abstract_element); + ensure_pseudo_element_style_for_cssom(abstract_element); // Container queries and container-relative units need layout to resolve. Avoid forcing layout for every // getComputedStyle() call; only elements that actually depend on a query container need the post-layout style. diff --git a/Libraries/LibWeb/CSS/ComputedProperties.cpp b/Libraries/LibWeb/CSS/ComputedProperties.cpp index e64df6736c..8daa990743 100644 --- a/Libraries/LibWeb/CSS/ComputedProperties.cpp +++ b/Libraries/LibWeb/CSS/ComputedProperties.cpp @@ -56,6 +56,8 @@ namespace Web::CSS { +static_assert(to_underlying(PseudoElement::KnownPseudoElementCount) <= sizeof(u64) * 8); + ComputedProperties::ComputedProperties() = default; ComputedProperties::~ComputedProperties() = default; @@ -108,6 +110,20 @@ bool ComputedProperties::is_animated_property_result_of_transition(PropertyID pr return m_animated_property_result_of_transition[n / 8] & (1 << (n % 8)); } +bool ComputedProperties::has_pseudo_element_style(PseudoElement pseudo_element) const +{ + VERIFY(to_underlying(pseudo_element) < to_underlying(PseudoElement::KnownPseudoElementCount)); + return m_pseudo_element_styles & (1ull << to_underlying(pseudo_element)); +} + +void ComputedProperties::set_has_pseudo_element_styles(u64 pseudo_element_styles) +{ + constexpr auto known_pseudo_element_count = to_underlying(PseudoElement::KnownPseudoElementCount); + if constexpr (known_pseudo_element_count < sizeof(u64) * 8) + VERIFY((pseudo_element_styles >> known_pseudo_element_count) == 0); + m_pseudo_element_styles |= pseudo_element_styles; +} + void ComputedProperties::set_property_inherited(PropertyID property_id, Inherited inherited) { VERIFY(property_id >= first_longhand_property_id && property_id <= last_longhand_property_id); @@ -141,6 +157,12 @@ void ComputedProperties::set_animated_property_result_of_transition(PropertyID p m_animated_property_result_of_transition[n / 8] &= ~(1 << (n % 8)); } +void ComputedProperties::set_has_pseudo_element_style(PseudoElement pseudo_element) +{ + VERIFY(to_underlying(pseudo_element) < to_underlying(PseudoElement::KnownPseudoElementCount)); + m_pseudo_element_styles |= 1ull << to_underlying(pseudo_element); +} + void ComputedProperties::set_property(PropertyID id, NonnullRefPtr value, Inherited inherited, Important important) { VERIFY(id >= first_longhand_property_id && id <= last_longhand_property_id); diff --git a/Libraries/LibWeb/CSS/ComputedProperties.h b/Libraries/LibWeb/CSS/ComputedProperties.h index 78ef377a75..5bc2694e4a 100644 --- a/Libraries/LibWeb/CSS/ComputedProperties.h +++ b/Libraries/LibWeb/CSS/ComputedProperties.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -72,12 +73,15 @@ public: bool is_animated_property_result_of_transition(PropertyID property_id) const; bool depends_on_viewport_metrics() const { return m_depends_on_viewport_metrics; } bool font_metrics_depend_on_viewport_metrics() const { return m_font_metrics_depend_on_viewport_metrics; } + bool has_pseudo_element_style(PseudoElement) const; + void set_has_pseudo_element_styles(u64); void set_property_important(PropertyID, Important); void set_property_inherited(PropertyID, Inherited); void set_animated_property_inherited(PropertyID, Inherited); void set_animated_property_result_of_transition(PropertyID, AnimatedPropertyResultOfTransition); void set_depends_on_viewport_metrics() { m_depends_on_viewport_metrics = true; } void set_font_metrics_depend_on_viewport_metrics() { m_font_metrics_depend_on_viewport_metrics = true; } + void set_has_pseudo_element_style(PseudoElement); void set_property(PropertyID, NonnullRefPtr value, Inherited = Inherited::No, Important = Important::No); void set_property_without_modifying_flags(PropertyID, NonnullRefPtr value); @@ -304,6 +308,7 @@ private: Display m_display_before_box_type_transformation { InitialValues::display() }; bool m_depends_on_viewport_metrics { false }; bool m_font_metrics_depend_on_viewport_metrics { false }; + u64 m_pseudo_element_styles { 0 }; RefPtr m_cached_computed_font_list; RefPtr m_cached_first_available_computed_font; diff --git a/Libraries/LibWeb/CSS/SelectorEngine.cpp b/Libraries/LibWeb/CSS/SelectorEngine.cpp index ab368b85fa..45148716af 100644 --- a/Libraries/LibWeb/CSS/SelectorEngine.cpp +++ b/Libraries/LibWeb/CSS/SelectorEngine.cpp @@ -1697,6 +1697,31 @@ bool matches(CSS::Selector const& selector, DOM::AbstractElement const& target, return matches_compound_selector(selector, selector.compound_selectors().size() - 1, target, shadow_host, context, scope, selector_kind, anchor); } +bool matches_originating_element_for_pseudo_element(CSS::Selector const& selector, CSS::PseudoElement pseudo_element, DOM::AbstractElement const& target, GC::Ptr shadow_host, MatchContext& context, GC::Ptr scope) +{ + VERIFY(!target.pseudo_element().has_value()); + + auto const& compound_selectors = selector.compound_selectors(); + for (size_t i = compound_selectors.size(); i > 0; --i) { + auto const compound_index = i - 1; + auto const& compound_selector = compound_selectors[compound_index]; + if (compound_selector.combinator != CSS::Selector::Combinator::PseudoElement) + continue; + if (compound_selector.simple_selectors.is_empty()) + continue; + auto const& simple_selector = compound_selector.simple_selectors.first(); + if (simple_selector.type != CSS::Selector::SimpleSelector::Type::PseudoElement) + continue; + if (simple_selector.pseudo_element().type() != pseudo_element) + continue; + if (compound_index == 0) + return false; + return matches_compound_selector(selector, compound_index - 1, target, shadow_host, context, scope, SelectorKind::Normal); + } + + return false; +} + static bool fast_matches_simple_selector(CSS::Selector::SimpleSelector const& simple_selector, DOM::Element const& element, GC::Ptr shadow_host, MatchContext& context) { if (should_block_shadow_host_matching(simple_selector, shadow_host, element)) diff --git a/Libraries/LibWeb/CSS/SelectorEngine.h b/Libraries/LibWeb/CSS/SelectorEngine.h index 3200b2ea1e..6dc715f7bd 100644 --- a/Libraries/LibWeb/CSS/SelectorEngine.h +++ b/Libraries/LibWeb/CSS/SelectorEngine.h @@ -58,5 +58,6 @@ struct MatchContext { }; bool matches(CSS::Selector const&, DOM::AbstractElement const&, GC::Ptr shadow_host, MatchContext& context, GC::Ptr scope = {}, SelectorKind selector_kind = SelectorKind::Normal, GC::Ptr anchor = nullptr); +bool matches_originating_element_for_pseudo_element(CSS::Selector const&, CSS::PseudoElement, DOM::AbstractElement const&, GC::Ptr shadow_host, MatchContext&, GC::Ptr scope = {}); } diff --git a/Libraries/LibWeb/CSS/StyleComputer.cpp b/Libraries/LibWeb/CSS/StyleComputer.cpp index 8514eca6a3..3e97af18e3 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -375,7 +375,13 @@ static Optional resolve_scope(DOM::AbstractElement abstract_eleme return resolve_scope_chain(abstract_element, rule, shadow_host, rule_root, *rule.scope_rule); } -Vector StyleComputer::collect_matching_rules_from_context(DOM::AbstractElement abstract_element, CascadeOrigin cascade_origin, GC::Ptr context_shadow_root, Optional qualified_layer_name) const +static u64 pseudo_element_style_bit(PseudoElement pseudo_element) +{ + VERIFY(to_underlying(pseudo_element) < to_underlying(PseudoElement::KnownPseudoElementCount)); + return 1ull << to_underlying(pseudo_element); +} + +Vector StyleComputer::collect_matching_rules_from_context(DOM::AbstractElement abstract_element, CascadeOrigin cascade_origin, GC::Ptr context_shadow_root, Optional qualified_layer_name, u64* matching_pseudo_element_styles) const { auto const& root_node = abstract_element.element().root(); auto shadow_root = as_if(root_node); @@ -450,7 +456,14 @@ Vector StyleComputer::collect_matching_rules_ } } else { for (auto const& rule : rules) { - if ((rule.slotted || rule.contains_part_pseudo_element || !rule.contains_pseudo_element) && filter_namespace_rule(element_namespace_uri, rule)) + if (!filter_namespace_rule(element_namespace_uri, rule)) + continue; + if (rule.selector.target_pseudo_element().has_value()) { + if (matching_pseudo_element_styles) + add_rule_to_run(rule, rule_root); + continue; + } + if (rule.slotted || rule.contains_part_pseudo_element || !rule.contains_pseudo_element) add_rule_to_run(rule, rule_root); } } @@ -461,6 +474,10 @@ Vector StyleComputer::collect_matching_rules_ add_rules_to_run(matching_rules, rule_root); return IterationDecision::Continue; }); + if (!abstract_element.pseudo_element().has_value() && matching_pseudo_element_styles) { + for (auto const& matching_rules : rule_cache.rules_by_pseudo_element) + add_rules_to_run(matching_rules, rule_root); + } }; if (auto const* rule_cache = rule_cache_for_cascade_origin(cascade_origin, qualified_layer_name, context_shadow_root)) @@ -539,6 +556,20 @@ Vector StyleComputer::collect_matching_rules_ .collect_per_element_selector_involvement_metadata = true, .has_result_cache = m_has_result_cache.ptr(), }; + if (!abstract_element.pseudo_element().has_value() && matching_pseudo_element_styles) { + if (auto pseudo_element = selector.target_pseudo_element(); pseudo_element.has_value()) { + if (is_synthetic_pseudo_element(*pseudo_element)) { + auto pseudo_element_bit = pseudo_element_style_bit(*pseudo_element); + if (*matching_pseudo_element_styles & pseudo_element_bit) + continue; + if (selector.contains_pseudo_class(PseudoClass::Has) + || SelectorEngine::matches_originating_element_for_pseudo_element(selector, *pseudo_element, abstract_element, shadow_host_to_use, context, resolved_scope->root)) { + *matching_pseudo_element_styles |= pseudo_element_bit; + } + } + continue; + } + } if (!SelectorEngine::matches(selector, abstract_element, shadow_host_to_use, context, resolved_scope->root)) continue; if (rule.container_rule && rule.container_rule->contains_size_feature()) { @@ -1414,6 +1445,11 @@ void StyleComputer::start_needed_transitions(ComputedProperties const& previous_ StyleComputer::MatchingRuleSet StyleComputer::build_matching_rule_set(DOM::AbstractElement abstract_element, bool& did_match_any_pseudo_element_rules, ComputeStyleMode mode) const { + MatchingRuleSet matching_rule_set; + u64* matching_pseudo_element_styles = nullptr; + if (mode == ComputeStyleMode::Normal && !abstract_element.pseudo_element().has_value()) + matching_pseudo_element_styles = &matching_rule_set.matching_pseudo_element_styles; + auto collect_author_contexts = [&] { Vector, 4> context_shadow_roots; auto append_context = [&](GC::Ptr shadow_root) { @@ -1464,12 +1500,12 @@ StyleComputer::MatchingRuleSet StyleComputer::build_matching_rule_set(DOM::Abstr }; for (auto const& layer_name : context_rule_cache.qualified_layer_names_in_order) { - auto layer_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::Author, shadow_root, layer_name); + auto layer_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::Author, shadow_root, layer_name, matching_pseudo_element_styles); sort_matching_rules(layer_rules); context.author_rules.append({ layer_name, layer_rules }); } - auto unlayered_author_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::Author, shadow_root); + auto unlayered_author_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::Author, shadow_root, {}, matching_pseudo_element_styles); sort_matching_rules(unlayered_author_rules); context.author_rules.append({ {}, unlayered_author_rules }); @@ -1480,10 +1516,9 @@ StyleComputer::MatchingRuleSet StyleComputer::build_matching_rule_set(DOM::Abstr }; // First, we collect all the CSS rules whose selectors match `element`: - MatchingRuleSet matching_rule_set; - matching_rule_set.user_agent_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::UserAgent, nullptr); + matching_rule_set.user_agent_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::UserAgent, nullptr, {}, matching_pseudo_element_styles); sort_matching_rules(matching_rule_set.user_agent_rules); - matching_rule_set.user_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::User, nullptr); + matching_rule_set.user_rules = collect_matching_rules_from_context(abstract_element, CascadeOrigin::User, nullptr, {}, matching_pseudo_element_styles); sort_matching_rules(matching_rule_set.user_rules); matching_rule_set.author_contexts = collect_author_contexts(); @@ -2636,6 +2671,7 @@ RefPtr StyleComputer::compute_style_impl(DOM::AbstractElemen } auto computed_properties = compute_properties(abstract_element, cascaded_properties); + computed_properties->set_has_pseudo_element_styles(matching_rule_set.matching_pseudo_element_styles); if (did_change_custom_properties.has_value()) { auto new_custom_property_data = abstract_element.custom_property_data(); diff --git a/Libraries/LibWeb/CSS/StyleComputer.h b/Libraries/LibWeb/CSS/StyleComputer.h index 1a48e9e6f9..d03ab9185d 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.h +++ b/Libraries/LibWeb/CSS/StyleComputer.h @@ -178,6 +178,7 @@ private: Vector user_agent_rules; Vector user_rules; Vector author_contexts; + u64 matching_pseudo_element_styles { 0 }; }; [[nodiscard]] MatchingRuleSet build_matching_rule_set(DOM::AbstractElement, bool& did_match_any_pseudo_element_rules, ComputeStyleMode) const; @@ -193,7 +194,7 @@ private: [[nodiscard]] Length::FontMetrics calculate_root_element_font_metrics(ComputedProperties const&) const; - [[nodiscard]] Vector collect_matching_rules_from_context(DOM::AbstractElement, CascadeOrigin, GC::Ptr, Optional qualified_layer_name = {}) const; + [[nodiscard]] Vector collect_matching_rules_from_context(DOM::AbstractElement, CascadeOrigin, GC::Ptr, Optional qualified_layer_name = {}, u64* matching_pseudo_element_styles = nullptr) const; void cascade_declarations( CascadedProperties&, diff --git a/Libraries/LibWeb/DOM/Element.cpp b/Libraries/LibWeb/DOM/Element.cpp index ca72eb46ad..a148737596 100644 --- a/Libraries/LibWeb/DOM/Element.cpp +++ b/Libraries/LibWeb/DOM/Element.cpp @@ -977,17 +977,24 @@ static CSS::RequiredInvalidationAfterStyleChange compute_required_invalidation(C return invalidation; } -CSS::RequiredInvalidationAfterStyleChange Element::recompute_pseudo_element_styles(bool& did_change_custom_properties, bool had_list_marker) +CSS::RequiredInvalidationAfterStyleChange Element::recompute_pseudo_element_styles(bool& did_change_custom_properties, bool had_list_marker, CSS::ComputedProperties const* old_originating_style) { CSS::RequiredInvalidationAfterStyleChange invalidation; auto& style_computer = document().style_computer(); // Any document change that can cause this element's style to change, could also affect its pseudo-elements. - auto recompute_pseudo_element_style = [&](CSS::PseudoElement pseudo_element) { + auto recompute_pseudo_element_style = [&](CSS::PseudoElement pseudo_element, bool has_implicit_style = false) { + auto pseudo_element_style = computed_properties(pseudo_element); + auto should_recompute = has_implicit_style + || pseudo_element_style + || (old_originating_style && old_originating_style->has_pseudo_element_style(pseudo_element)) + || (m_computed_properties && m_computed_properties->has_pseudo_element_style(pseudo_element)); + if (!should_recompute) + return; + style_computer.push_ancestor(*this); - auto pseudo_element_style = computed_properties(pseudo_element); auto new_pseudo_element_style = style_computer.compute_pseudo_element_style_if_needed({ *this, pseudo_element }, did_change_custom_properties); // TODO: Can we be smarter about invalidation? @@ -1009,7 +1016,7 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_pseudo_element_styl if (m_rendered_in_top_layer) recompute_pseudo_element_style(CSS::PseudoElement::Backdrop); if (had_list_marker || m_computed_properties->display().is_list_item()) - recompute_pseudo_element_style(CSS::PseudoElement::Marker); + recompute_pseudo_element_style(CSS::PseudoElement::Marker, true); return invalidation; } @@ -1072,6 +1079,7 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_style(bool& did_cha new_computed_properties->set_property(CSS::PropertyID::TextAlign, CSS::KeywordStyleValue::create(CSS::Keyword::Start)); } + auto old_computed_properties = m_computed_properties; bool had_list_marker = false; CSS::RequiredInvalidationAfterStyleChange invalidation; @@ -1115,7 +1123,7 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_style(bool& did_cha }); } - invalidation |= recompute_pseudo_element_styles(did_change_custom_properties, had_list_marker); + invalidation |= recompute_pseudo_element_styles(did_change_custom_properties, had_list_marker, old_computed_properties.ptr()); if (invalidation.is_none()) { counters.element_style_noop_recomputations++; @@ -1188,7 +1196,7 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_inherited_style(Sch } bool did_change_custom_properties = false; - invalidation |= recompute_pseudo_element_styles(did_change_custom_properties, had_list_marker); + invalidation |= recompute_pseudo_element_styles(did_change_custom_properties, had_list_marker, computed_properties.ptr()); if (invalidation.is_none()) { counters.element_inherited_style_noop_recomputations++; diff --git a/Libraries/LibWeb/DOM/Element.h b/Libraries/LibWeb/DOM/Element.h index 7f9a4a9f36..5b7362c6f2 100644 --- a/Libraries/LibWeb/DOM/Element.h +++ b/Libraries/LibWeb/DOM/Element.h @@ -675,7 +675,7 @@ private: FlyString make_html_uppercased_qualified_name() const; void exit_fullscreen_on_element_removal(); - CSS::RequiredInvalidationAfterStyleChange recompute_pseudo_element_styles(bool& did_change_custom_properties, bool had_list_marker); + CSS::RequiredInvalidationAfterStyleChange recompute_pseudo_element_styles(bool& did_change_custom_properties, bool had_list_marker, CSS::ComputedProperties const* old_originating_style); void apply_computed_style_to_layout_node_if_needed(CSS::RequiredInvalidationAfterStyleChange const&); WebIDL::ExceptionOr> insert_adjacent(StringView where, GC::Ref node); diff --git a/Tests/LibWeb/Text/expected/css/getComputedStyle-pseudo-element.txt b/Tests/LibWeb/Text/expected/css/getComputedStyle-pseudo-element.txt index cd9b7204ab..3a919a1b5a 100644 --- a/Tests/LibWeb/Text/expected/css/getComputedStyle-pseudo-element.txt +++ b/Tests/LibWeb/Text/expected/css/getComputedStyle-pseudo-element.txt @@ -4,3 +4,6 @@ #foo::before: color: rgb(128, 128, 128) background-color: rgb(0, 255, 255) +#foo::after: + content: "bye" + color: rgb(0, 128, 0) diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-mutations.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-mutations.txt index 286bdc72bf..39cd463b4d 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-mutations.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-mutations.txt @@ -793,7 +793,7 @@ PASS: pseudo-element child mutation: document: :has(> .hit:first-child) after pr PASS: pseudo-element child mutation without warmup: document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -818,7 +818,7 @@ PASS: pseudo-element child mutation: document: :has(.hit ~ .after) after indirec PASS: pseudo-element child mutation without warmup: document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -827,12 +827,12 @@ PASS: pseudo-element child mutation: document: :has(.hit) after replaceChild | s PASS: pseudo-element child mutation without warmup: document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation without warmup: document: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation without warmup: document: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation: document: :empty stays true after comment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation: document: :empty becomes false after whitespace text append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -844,7 +844,7 @@ PASS: pseudo-element child mutation: document: :has(> *) after child append | st PASS: pseudo-element child mutation without warmup: document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -855,7 +855,7 @@ PASS: pseudo-element child mutation: document: :has(:required) after required in PASS: pseudo-element child mutation without warmup: document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -868,7 +868,7 @@ PASS: pseudo-element child mutation: document: :has(:any-link) after linked anch PASS: pseudo-element child mutation without warmup: document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -889,7 +889,7 @@ PASS: pseudo-element child mutation: document: :has(> .outer .hit) after child s PASS: pseudo-element child mutation without warmup: document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -900,7 +900,7 @@ PASS: pseudo-element child mutation: document: :has(.hit ~ .after ~ .tail) after PASS: pseudo-element child mutation without warmup: document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -909,7 +909,7 @@ PASS: pseudo-element child mutation: document: :has(.hit:nth-of-type(2)) after s PASS: pseudo-element child mutation without warmup: document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -924,18 +924,18 @@ PASS: pseudo-element child mutation: document: :not(:has(.miss)):has(.hit) after PASS: pseudo-element child mutation without warmup: document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: pseudo-element child mutation: document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -964,7 +964,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(> .hit:first-child) a PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -989,7 +989,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) after PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -998,12 +998,12 @@ PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after replaceCh PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation without warmup: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation without warmup: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation: shadow-internal: :empty stays true after comment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation: shadow-internal: :empty becomes false after whitespace text append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -1015,7 +1015,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(> *) after child appe PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1026,7 +1026,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(:required) after requ PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1039,7 +1039,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(:any-link) after link PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1060,7 +1060,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(> .outer .hit) after PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1071,7 +1071,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(.hit ~ .after ~ .tail PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1080,7 +1080,7 @@ PASS: pseudo-element child mutation: shadow-internal: :has(.hit:nth-of-type(2)) PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1095,18 +1095,18 @@ PASS: pseudo-element child mutation: shadow-internal: :not(:has(.miss)):has(.hit PASS: pseudo-element child mutation without warmup: shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-internal: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1135,7 +1135,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(> .hit:first-child) after PASS: pseudo-element child mutation without warmup: shadow-host: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1160,7 +1160,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(.hit ~ .after) after indi PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1169,9 +1169,9 @@ PASS: pseudo-element child mutation: shadow-host: :has(.hit) after replaceChild PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation without warmup: shadow-host: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: pseudo-element child mutation: shadow-host: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -1186,7 +1186,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(> *) after child append | PASS: pseudo-element child mutation without warmup: shadow-host: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1197,7 +1197,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(:required) after required PASS: pseudo-element child mutation without warmup: shadow-host: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1210,7 +1210,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(:any-link) after linked a PASS: pseudo-element child mutation without warmup: shadow-host: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1231,7 +1231,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(> .outer .hit) after chil PASS: pseudo-element child mutation without warmup: shadow-host: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1242,7 +1242,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(.hit ~ .after ~ .tail) af PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1251,7 +1251,7 @@ PASS: pseudo-element child mutation: shadow-host: :has(.hit:nth-of-type(2)) afte PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1266,18 +1266,18 @@ PASS: pseudo-element child mutation: shadow-host: :not(:has(.miss)):has(.hit) af PASS: pseudo-element child mutation without warmup: shadow-host: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: pseudo-element child mutation: shadow-host: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: pseudo-element child mutation: shadow-host: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation without warmup: shadow-host: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: pseudo-element child mutation: shadow-host: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-document-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-document-stress.txt index 137780d9e0..9fa46999ea 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-document-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-document-stress.txt @@ -21,124 +21,124 @@ PASS: stress cold child mutation: part-document: mixed-case SVG foreignObject ty PASS: detached child mutation: part-document: mixed-case SVG foreignObject type selector with :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(> .hit:first-child) after prepend | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:last-child) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -147,46 +147,46 @@ PASS: detached child mutation: part-document: :not(:has(.hit)) becomes false aft PASS: detached pseudo-element child mutation: part-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after removeChild | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after child moves out | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: part-document: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -219,58 +219,58 @@ PASS: detached child mutation: part-document: :dir(rtl) after dir=auto text muta PASS: detached pseudo-element child mutation: part-document: :dir(rtl) after dir=auto text mutation | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: part-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -279,220 +279,220 @@ PASS: detached child mutation: part-document: :has(:empty) becomes false after t PASS: detached pseudo-element child mutation: part-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(2)) after second child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress cold child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: detached child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: detached pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress cold child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: detached child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: detached pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -501,22 +501,22 @@ PASS: detached child mutation: part-document: :has(.hit:empty) becomes false aft PASS: detached pseudo-element child mutation: part-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -525,64 +525,64 @@ PASS: detached child mutation: part-document: :has(.hit + .after) becomes false PASS: detached pseudo-element child mutation: part-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -597,169 +597,169 @@ PASS: detached child mutation: part-shadow-host-document: :empty becomes false a PASS: detached pseudo-element child mutation: part-shadow-host-document: :empty becomes false after textContent | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after DocumentFragment append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after existing child move into parent | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has([data-hit]) after attribute-bearing child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(#hit-id) after identified child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(.miss)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:empty) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChild | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -795,367 +795,367 @@ PASS: detached child mutation: part-shadow-host-document: :dir(rtl) after dir=au PASS: detached pseudo-element child mutation: part-shadow-host-document: :dir(rtl) after dir=auto text mutation | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(*) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> *) after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:enabled) after enabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:disabled) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:required) after required input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:any-link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(rect.hit) after SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> rect.hit) after direct SVG child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .outer .hit) after child subtree append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.before ~ .hit) after separated sibling append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit):has(.also) after independent children append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :is(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :where(:has(.hit)) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress cold child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: detached child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after fragment replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(.miss)) after non-miss child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(even).hit) after even child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-detached-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-detached-stress.txt index d0ec07b29b..f4be4c5b0b 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-detached-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-detached-stress.txt @@ -16,11 +16,11 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) a PASS: detached child mutation: part-shadow-internal: :has(> .hit) after direct child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -36,17 +36,17 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit:no PASS: detached child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:last-child) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after adjacent sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -56,11 +56,11 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) a PASS: detached child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -78,7 +78,7 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> *) af PASS: detached child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -90,13 +90,13 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:requir PASS: detached child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -104,11 +104,11 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:any-li PASS: detached child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -126,7 +126,7 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(> .oute PASS: detached child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -138,17 +138,17 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(.hit ~ PASS: detached child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-last-child(1)) after last child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-last-child(2)) after trailing child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-of-type(2)) after second typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -164,23 +164,23 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :not(:has(.m PASS: detached child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -190,9 +190,9 @@ PASS: detached pseudo-element child mutation: part-shadow-internal: :has(:not(.m PASS: detached child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=5, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -208,11 +208,11 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.h PASS: detached child mutation: part-shadow-host-internal: :has(> .hit) after direct child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after prepend | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after insertBefore | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(span.hit) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -228,17 +228,17 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.h PASS: detached child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child) after first child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:last-child) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after adjacent sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -248,11 +248,11 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.h PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :empty becomes true after replaceChildren | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -270,7 +270,7 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(> PASS: detached child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:not(:checked)) after unchecked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -282,13 +282,13 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:r PASS: detached child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:link) after linked anchor append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -296,11 +296,11 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:a PASS: detached child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:nth-last-child(2)) after trailing child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:first-of-type) after typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:first-of-type) after typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -318,7 +318,7 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(> PASS: detached child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(.before + .hit) after adjacent pair append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -330,17 +330,17 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(.h PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-last-child(1)) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:nth-of-type(2)) after second typed child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 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=4, elementStyleNoopRecomputations=1, 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:only-of-type) becomes false after same type sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:is(.hit, .fallback)) after second-list child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -356,23 +356,23 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :not(:h PASS: detached child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 append with multiple arguments | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:first-child + .after) after prepend before existing child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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:last-child) becomes false after trailing sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 replaceWith nonmatching child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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 cloned child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -382,69 +382,69 @@ PASS: detached pseudo-element child mutation: part-shadow-host-internal: :has(:n PASS: detached child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:not(:empty)) after text child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, 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(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, 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=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after prepend | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after insertBefore | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:last-child) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after adjacent sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :empty becomes true after replaceChildren | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -456,187 +456,187 @@ PASS: detached pseudo-element child mutation: part-shadow-ancestor: :empty becom PASS: detached child mutation: part-shadow-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, 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=7, elementStyleNoopRecomputations=2, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-last-child(1)) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-of-type(2)) after second typed child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-of-type) becomes false after same type sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child + .after) after prepend before existing child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:last-child) becomes false after trailing sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceWith nonmatching child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after prepend | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after insertBefore | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:last-child) after last child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after adjacent sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :empty becomes true after replaceChildren | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -648,124 +648,124 @@ PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :empty PASS: detached child mutation: part-shadow-host-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, 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=8, elementStyleNoopRecomputations=2, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(*) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:empty) becomes false after text inserted into only child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:nth-last-child(2)) after trailing child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-last-child(1)) after last child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-last-child(2)) after trailing child append | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:nth-of-type(2)) after second typed child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 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=5, elementStyleNoopRecomputations=1, 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:only-of-type) becomes false after same type sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:empty) becomes false after nested text append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:first-child + .after) after prepend before existing child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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:last-child) becomes false after trailing sibling append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 replaceWith nonmatching child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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 fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:nth-child(even).hit) after even child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, 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(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +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=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-pseudo-stress.txt index c44201bce3..6f0cd18639 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-part-shadow-pseudo-stress.txt @@ -2,61 +2,61 @@ PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty be PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=6, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=6, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -68,188 +68,188 @@ PASS: stress warm pseudo-element child mutation: part-shadow-internal: :empty be PASS: stress cold pseudo-element child mutation: part-shadow-internal: :empty becomes false after whitespace text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :dir(rtl) after dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=8, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=8, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=7, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=7, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=8, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=8, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=7, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=7, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=8, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=8, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=6, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=6, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=6, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=14, hasResultCacheHits=6, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -260,188 +260,188 @@ PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :emp PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :empty becomes false after whitespace text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :dir(rtl) after dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=8, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=8, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=7, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=7, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=17, hasResultCacheHits=8, hasResultCacheMisses=9 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=17, hasResultCacheHits=8, hasResultCacheMisses=9 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=15, hasResultCacheHits=7, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=15, hasResultCacheHits=7, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=18, hasResultCacheHits=8, hasResultCacheMisses=10 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=18, hasResultCacheHits=8, hasResultCacheMisses=10 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-internal: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -452,188 +452,188 @@ PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :empty be PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :empty becomes false after whitespace text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=2, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=2, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after element append | styleInvalidations=1, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after textContent | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=2, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=2, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after DocumentFragment append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after existing child move into parent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit:first-child) after insertBefore | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has([data-hit]) after attribute-bearing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(#hit-id) after identified child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(.miss)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child) after first child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -644,125 +644,125 @@ PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :emp PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :empty becomes false after whitespace text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(*) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=1, hasResultCacheMisses=9 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=1, hasResultCacheMisses=9 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=2, hasResultCacheMisses=10 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=2, hasResultCacheMisses=10 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(*) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(*) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> *) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) after checked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:enabled) after enabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:disabled) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:required) after required input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:optional) after optional input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:dir(rtl)) after dir=auto child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:lang(he)) after Hebrew language child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:any-link) after linked anchor append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-last-child(2)) after trailing child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:first-of-type) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(:checked, :disabled)) after disabled input append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(:empty, :checked)) after empty child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> rect.hit) after direct SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.outer .middle .hit) after deep descendant append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer .hit) after child subtree append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.before ~ .hit) after separated sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after + .tail) after sibling chain append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after ~ .tail) after indirect chain append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) after only child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-last-child(2)) after trailing child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:nth-of-type(2)) after second typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) after only typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:where(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit):has(.also) after independent children append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :is(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :where(:has(.hit)) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :not(:has(.miss)):has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after fragment replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(.miss)) after non-miss child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:not(:empty)) after text child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(even).hit) after even child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress cold pseudo-element child mutation: part-shadow-host-ancestor: :has(:nth-child(odd).hit) after prepend shifts child index | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-stress.txt index f87ac0ec97..58b084c980 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-stress.txt @@ -63,10 +63,10 @@ PASS: detached child mutation: document: :has(> .hit:first-child) after insertBe PASS: detached pseudo-element child mutation: document: :has(> .hit:first-child) after insertBefore | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -141,10 +141,10 @@ PASS: detached child mutation: document: :has(> .wrapper > .hit) after nested st PASS: detached pseudo-element child mutation: document: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -171,31 +171,31 @@ PASS: detached child mutation: document: :has(.hit) after replaceChildren | styl PASS: detached pseudo-element child mutation: document: :has(.hit) after replaceChildren | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after removeChild | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after child moves out | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: document: :empty becomes true after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: document: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: document: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: document: :empty becomes true after textContent clear | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: document: :empty becomes true after textContent clear | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -237,10 +237,10 @@ PASS: detached child mutation: document: :has(:checked) after checked checkbox a PASS: detached pseudo-element child mutation: document: :has(:checked) after checked checkbox append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -273,10 +273,10 @@ PASS: detached child mutation: document: :has(:optional) after optional input ap PASS: detached pseudo-element child mutation: document: :has(:optional) after optional input append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(:empty) becomes false after text inserted into only child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -315,10 +315,10 @@ PASS: detached child mutation: document: :has(:only-child) after only child appe PASS: detached pseudo-element child mutation: document: :has(:only-child) after only child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -381,10 +381,10 @@ PASS: detached child mutation: document: :has(> .outer > .middle > .hit) after e PASS: detached pseudo-element child mutation: document: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -417,10 +417,10 @@ PASS: detached child mutation: document: :has(.hit:only-child) after only child PASS: detached pseudo-element child mutation: document: :has(.hit:only-child) after only child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -447,10 +447,10 @@ PASS: detached child mutation: document: :has(.hit:only-of-type) after only type PASS: detached pseudo-element child mutation: document: :has(.hit:only-of-type) after only typed child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -495,10 +495,10 @@ PASS: detached child mutation: document: :has(.hit:not(:empty)) after non-empty PASS: detached pseudo-element child mutation: document: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit:empty) becomes false after nested text append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -513,28 +513,28 @@ PASS: detached child mutation: document: :has(.hit:first-child + .after) after p PASS: detached pseudo-element child mutation: document: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -543,10 +543,10 @@ PASS: detached child mutation: document: :has(.hit) after replaceWith matching c PASS: detached pseudo-element child mutation: document: :has(.hit) after replaceWith matching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: document: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -648,8 +648,8 @@ PASS: detached child mutation: shadow-internal: :has(> .hit:first-child) after i PASS: detached pseudo-element child mutation: shadow-internal: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(> .hit) ignores nested child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -726,8 +726,8 @@ PASS: detached child mutation: shadow-internal: :has(> .wrapper > .hit) after ne PASS: detached pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :not(:has(.hit)) becomes false after child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -756,31 +756,31 @@ PASS: detached child mutation: shadow-internal: :has(.hit) after replaceChildren PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) after replaceChildren | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after removeChild | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: shadow-internal: :empty becomes true after replaceChildren | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: shadow-internal: :empty becomes true after textContent clear | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -822,8 +822,8 @@ PASS: detached child mutation: shadow-internal: :has(:checked) after checked che PASS: detached pseudo-element child mutation: shadow-internal: :has(:checked) after checked checkbox append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -858,8 +858,8 @@ PASS: detached child mutation: shadow-internal: :has(:optional) after optional i PASS: detached pseudo-element child mutation: shadow-internal: :has(:optional) after optional input append | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -900,8 +900,8 @@ PASS: detached child mutation: shadow-internal: :has(:only-child) after only chi PASS: detached pseudo-element child mutation: shadow-internal: :has(:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -966,8 +966,8 @@ PASS: detached child mutation: shadow-internal: :has(> .outer > .middle > .hit) PASS: detached pseudo-element child mutation: shadow-internal: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1002,8 +1002,8 @@ PASS: detached child mutation: shadow-internal: :has(.hit:only-child) after only PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:only-child) after only child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1032,8 +1032,8 @@ PASS: detached child mutation: shadow-internal: :has(.hit:only-of-type) after on PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) after only typed child append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1080,8 +1080,8 @@ PASS: detached child mutation: shadow-internal: :has(.hit:not(:empty)) after non PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1098,26 +1098,26 @@ PASS: detached child mutation: shadow-internal: :has(.hit:first-child + .after) PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1128,8 +1128,8 @@ PASS: detached child mutation: shadow-internal: :has(.hit) after replaceWith mat PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) after replaceWith matching child | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: shadow-internal: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-internal: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1224,10 +1224,10 @@ PASS: detached child mutation: shadow-host: :has(> .hit:first-child) after inser PASS: detached pseudo-element child mutation: shadow-host: :has(> .hit:first-child) after insertBefore | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(> .hit) ignores nested child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(span.hit) after typed child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1302,10 +1302,10 @@ PASS: detached child mutation: shadow-host: :has(> .wrapper > .hit) after nested PASS: detached pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :not(:has(.hit)) becomes false after child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit, .fallback) after first-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1332,22 +1332,22 @@ PASS: detached child mutation: shadow-host: :has(.hit) after replaceChildren | s PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) after replaceChildren | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after child moves out | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: shadow-host: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm pseudo-element child mutation: shadow-host: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -1398,10 +1398,10 @@ PASS: detached child mutation: shadow-host: :has(:checked) after checked checkbo PASS: detached pseudo-element child mutation: shadow-host: :has(:checked) after checked checkbox append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1434,10 +1434,10 @@ PASS: detached child mutation: shadow-host: :has(:optional) after optional input PASS: detached pseudo-element child mutation: shadow-host: :has(:optional) after optional input append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(:empty) becomes false after text inserted into only child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:not(:empty)) after non-empty child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1476,10 +1476,10 @@ PASS: detached child mutation: shadow-host: :has(:only-child) after only child a PASS: detached pseudo-element child mutation: shadow-host: :has(:only-child) after only child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(:nth-child(2)) after second child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1542,10 +1542,10 @@ PASS: detached child mutation: shadow-host: :has(> .outer > .middle > .hit) afte PASS: detached pseudo-element child mutation: shadow-host: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.before + .hit) after adjacent pair append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1578,10 +1578,10 @@ PASS: detached child mutation: shadow-host: :has(.hit:only-child) after only chi PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-child) after only child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1608,10 +1608,10 @@ PASS: detached child mutation: shadow-host: :has(.hit:only-of-type) after only t PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) after only typed child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1656,10 +1656,10 @@ PASS: detached child mutation: shadow-host: :has(.hit:not(:empty)) after non-emp PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:empty) becomes false after nested text append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) after append with multiple arguments | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1674,28 +1674,28 @@ PASS: detached child mutation: shadow-host: :has(.hit:first-child + .after) afte PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -1704,10 +1704,10 @@ PASS: detached child mutation: shadow-host: :has(.hit) after replaceWith matchin PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) after replaceWith matching child | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: detached pseudo-element child mutation: shadow-host: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm child mutation: shadow-host: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: shadow-host: :has(.hit) after cloned child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: shadow-host: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-svg-use-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-svg-use-stress.txt index 630abd9c3c..7dbf1d0d6d 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-svg-use-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-child-svg-use-stress.txt @@ -54,10 +54,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(> .hit:first-chi PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .hit:first-child) after insertBefore | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .hit) ignores nested child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(span.hit) after typed child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -132,10 +132,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(> .wrapper > .hi PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) after nested structure append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :not(:has(.hit)) becomes false after child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit, .fallback) after first-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -162,31 +162,31 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit) after repl PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) after replaceChildren | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after removeChild | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after child moves out | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after replaceChildren | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress warm child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :empty becomes true after textContent clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -222,8 +222,8 @@ PASS: detached child mutation: document-styled-use-shadow: :has(:checked) after PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:checked) after checked checkbox append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:checked) becomes false after checked checkbox removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: document-styled-use-shadow: :has(:not(:checked)) after unchecked checkbox append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -258,10 +258,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(:optional) after PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:optional) after optional input append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:empty) becomes false after text inserted into only child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:not(:empty)) after non-empty child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -300,10 +300,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(:only-child) aft PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) after only child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:nth-child(2)) after second child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:nth-child(2)) after second child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -366,10 +366,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(> .outer > .midd PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .outer > .middle > .hit) after exact deep append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.miss .hit) ignores hit without required ancestor | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.before + .hit) after adjacent pair append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -402,10 +402,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit:only-child) PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) after only child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-child) becomes false after sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:nth-last-child(1)) after last child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -432,10 +432,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit:only-of-typ PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) after only typed child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:only-of-type) becomes false after same type sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(:is(.hit, .fallback)) after second-list child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -480,10 +480,10 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit:not(:empty) PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:not(:empty)) after non-empty child append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:empty) becomes false after nested text append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) after append with multiple arguments | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -498,26 +498,26 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit:first-child PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:first-child + .after) after prepend before existing child | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit + .after) becomes false after middle child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit ~ .after) becomes false after following child removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: stress warm child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(> .wrapper > .hit) becomes false after nested child removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) after replaceWith matching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -528,8 +528,8 @@ PASS: detached child mutation: document-styled-use-shadow: :has(.hit) after repl PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) after replaceWith matching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: stress cold child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: stress warm pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: stress cold pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: detached child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached pseudo-element child mutation: document-styled-use-shadow: :has(.hit) becomes false after replaceWith nonmatching child | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: stress warm child mutation: document-styled-use-shadow: :has(.hit) after cloned child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-detached-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-detached-stress.txt index ad358ab4a6..bbe8661890 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-detached-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-detached-stress.txt @@ -28,20 +28,20 @@ PASS: descendant attribute stress detached-pseudo: document: :has(span.hit:not(. PASS: descendant attribute stress detached-pseudo-cold: document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has(:is(.hit)) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has(:is(.hit)) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo-cold: document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -52,8 +52,8 @@ PASS: descendant attribute stress detached-pseudo: document: :has(.hit.extra) af PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -80,8 +80,8 @@ PASS: descendant attribute stress detached-pseudo: document: :has([data-hit|='ye PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has([hidden]) after descendant hidden property change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has([hidden]) after descendant hidden property change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -100,8 +100,8 @@ PASS: descendant attribute stress detached-pseudo: document: :has(.hit:not([data PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -128,16 +128,16 @@ PASS: descendant attribute stress detached-pseudo: document: :has(.hit:nth-child PASS: descendant attribute stress detached-pseudo-cold: document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-cold: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -172,20 +172,20 @@ PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: : PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -196,8 +196,8 @@ PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: : PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit.extra) after descendant second class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -224,8 +224,8 @@ PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: : PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -244,8 +244,8 @@ PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: : PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -272,16 +272,16 @@ PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: : PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant attribute stress detached: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-cold: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -325,11 +325,11 @@ PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(:i PASS: descendant attribute stress detached: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -341,7 +341,7 @@ PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.h PASS: descendant attribute stress detached: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -369,7 +369,7 @@ PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([d PASS: descendant attribute stress detached: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -389,7 +389,7 @@ PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.h PASS: descendant attribute stress detached: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -425,7 +425,7 @@ PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([d PASS: descendant attribute stress detached: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -440,12 +440,12 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.HIT) after PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -460,20 +460,20 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has(span.hit:no PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -484,8 +484,8 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit.extra) PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -512,8 +512,8 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit|= PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -532,8 +532,8 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit:not([d PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -560,16 +560,16 @@ PASS: descendant attribute stress detached-pseudo: shadow-host: :has(.hit:nth-ch PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-cold: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-detached-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-detached-pseudo-stress.txt index cab79dbaf4..b6071865a2 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-detached-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-detached-pseudo-stress.txt @@ -1,25 +1,25 @@ PASS: descendant direction stress detached-pseudo: document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress detached-pseudo: document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo: document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -28,26 +28,26 @@ PASS: inherited language stress detached-pseudo: document: :has(:where(:lang(he) PASS: inherited language stress detached-pseudo-cold: document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo: shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress detached-pseudo: shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo: shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -56,197 +56,197 @@ PASS: inherited language stress detached-pseudo: shadow-internal: :has(:where(:l PASS: inherited language stress detached-pseudo-cold: shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo: shadow-host: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: shadow-host: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress detached-pseudo: shadow-host: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo-cold: shadow-host: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo-cold: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: shadow-host: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: shadow-host: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo: shadow-host: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo-cold: shadow-host: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress detached-pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress detached-pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo: shadow-host: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo: shadow-host: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo-cold: shadow-host: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress detached-pseudo: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress detached-pseudo-cold: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo: part-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress detached-pseudo-cold: part-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress detached-pseudo: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress detached-pseudo-cold: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress detached-pseudo: part-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress detached-pseudo-cold: part-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress detached-pseudo: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress detached-pseudo-cold: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo: part-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo-cold: part-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress detached-pseudo: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress detached-pseudo-cold: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress detached-pseudo: part-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress detached-pseudo-cold: part-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo-cold: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress detached-pseudo: part-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo-cold: part-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo: part-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress detached-pseudo-cold: part-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo-cold: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo-cold: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress detached-pseudo-cold: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: inherited language stress detached-pseudo: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-pseudo-stress.txt index 6d32251a98..3a85a05f35 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-direction-language-pseudo-stress.txt @@ -1,25 +1,25 @@ PASS: descendant direction stress pseudo-warm: document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress pseudo-warm: document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-warm: document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -28,26 +28,26 @@ PASS: inherited language stress pseudo-warm: document: :has(:where(:lang(he), .f PASS: inherited language stress pseudo-cold: document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress pseudo-warm: shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-warm: shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -56,197 +56,197 @@ PASS: inherited language stress pseudo-warm: shadow-internal: :has(:where(:lang( PASS: inherited language stress pseudo-cold: shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: shadow-host: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: shadow-host: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: shadow-host: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress pseudo-warm: shadow-host: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-cold: shadow-host: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-cold: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: shadow-host: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: shadow-host: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: shadow-host: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: shadow-host: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-warm: shadow-host: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-cold: shadow-host: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-warm: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant language stress pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-warm: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language stress pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-warm: shadow-host: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-host: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-warm: shadow-host: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-cold: shadow-host: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant direction stress pseudo-warm: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress pseudo-cold: part-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-warm: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant direction stress pseudo-cold: part-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-warm: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-cold: part-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-warm: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant language stress pseudo-cold: part-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-warm: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-cold: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language stress pseudo-warm: part-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-cold: part-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-warm: part-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language stress pseudo-cold: part-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-warm: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-cold: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-warm: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-cold: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-warm: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: inherited language stress pseudo-cold: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: inherited language stress pseudo-warm: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant direction stress pseudo-cold: part-shadow-host-document: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant language stress pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-document: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant direction stress pseudo-cold: part-shadow-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant language stress pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant direction stress pseudo-warm: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant direction stress pseudo-cold: part-shadow-host-internal: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant language stress pseudo-warm: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant language stress pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-internal: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: part-shadow-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl)) after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(ltr)) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :has(:dir(rtl):first-child) after first descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant direction stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant direction stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:dir(rtl))) becomes false after descendant dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after first descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant language stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant language stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after descendant lang attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-warm: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=7, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language stress pseudo-cold: part-shadow-host-ancestor: :has(:where(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-mutations.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-mutations.txt index a152cbe7d8..1583ab5756 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-mutations.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-mutations.txt @@ -353,9 +353,9 @@ PASS: descendant language mutation: document: :not(:has(:lang(he))) becomes fals PASS: inherited language mutation: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: document: :has(:lang(he)) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: document: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: document: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: document: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: document: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -373,9 +373,9 @@ PASS: descendant language mutation: shadow-internal: :not(:has(:lang(he))) becom PASS: inherited language mutation: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: shadow-internal: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: shadow-internal: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: shadow-internal: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: shadow-internal: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: shadow-internal: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -393,9 +393,9 @@ PASS: descendant language mutation: shadow-host: :not(:has(:lang(he))) becomes f PASS: inherited language mutation: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: shadow-host: :has(:lang(he)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: shadow-host: :has(:lang(en)) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: inherited language pseudo-element mutation: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: inherited language pseudo-element mutation: shadow-host: :not(:has(:lang(he))) becomes false after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: inherited language mutation: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language pseudo-element mutation: shadow-host: :has(:lang(he):first-child) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: inherited language mutation: shadow-host: :has(:is(:lang(he), .fallback)) after ancestor lang change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -461,19 +461,19 @@ PASS: inherited language mutation: slotted-shadow-host-named: :has(:where(:lang( PASS: descendant state mutation: document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -483,7 +483,7 @@ PASS: descendant state pseudo-element mutation: document: :has(:checked + .after PASS: descendant state mutation: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 @@ -491,19 +491,19 @@ PASS: descendant state pseudo-element mutation: document: :has(:checked):has(:di PASS: descendant state mutation: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-internal: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -513,7 +513,7 @@ PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked + PASS: descendant state mutation: shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 @@ -521,19 +521,19 @@ PASS: descendant state pseudo-element mutation: shadow-internal: :has(:checked): PASS: descendant state mutation: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-host: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-host: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -543,7 +543,7 @@ PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked + .af PASS: descendant state mutation: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state pseudo-element mutation: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: shadow-host: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 @@ -579,128 +579,128 @@ PASS: descendant state mutation: slotted-shadow-host-default: :not(:has(:checked PASS: descendant state mutation: slotted-shadow-host-default: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: slotted-shadow-host-default: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state mutation: part-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state pseudo-element mutation: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: descendant state pseudo-element mutation: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state mutation: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state pseudo-element mutation: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 +PASS: descendant state pseudo-element mutation: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state mutation: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: form child mutation: document: :invalid after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: form child mutation: document: :valid after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: form child mutation: document: :invalid after required fieldset input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: descendant state pseudo-element mutation: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: form child mutation: document: :invalid after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: form child mutation: document: :valid after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: form child mutation: document: :invalid after required fieldset input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: form child mutation: document: :has(:invalid) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: form child mutation: document: :has(:valid) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: form child mutation: document: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: form child mutation: document: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: placeholder child mutation: document: :placeholder-shown becomes false after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: placeholder child mutation: document: :not(:placeholder-shown) becomes true after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: placeholder child mutation: document: :placeholder-shown becomes true after text removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: placeholder child mutation: document: :not(:placeholder-shown) becomes true after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: placeholder child mutation: document: :placeholder-shown becomes true after text removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: placeholder child mutation: document: :has(:placeholder-shown) after textarea child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: placeholder child mutation: document: :has(:not(:placeholder-shown)) after filled textarea child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: form child mutation: shadow-internal: :invalid after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: form child mutation: shadow-internal: :valid after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: form child mutation: shadow-internal: :invalid after required fieldset input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: form child mutation: shadow-internal: :invalid after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: form child mutation: shadow-internal: :valid after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: form child mutation: shadow-internal: :invalid after required fieldset input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: form child mutation: shadow-internal: :has(:invalid) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: form child mutation: shadow-internal: :has(:valid) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: form child mutation: shadow-internal: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: form child mutation: shadow-internal: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: placeholder child mutation: shadow-internal: :placeholder-shown becomes false after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: placeholder child mutation: shadow-internal: :not(:placeholder-shown) becomes true after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: placeholder child mutation: shadow-internal: :placeholder-shown becomes true after text removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: placeholder child mutation: shadow-internal: :not(:placeholder-shown) becomes true after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 +PASS: placeholder child mutation: shadow-internal: :placeholder-shown becomes true after text removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: placeholder child mutation: shadow-internal: :has(:placeholder-shown) after textarea child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: placeholder child mutation: shadow-internal: :has(:not(:placeholder-shown)) after filled textarea child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: form child mutation: part-document: :invalid after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: form child mutation: part-document: :valid after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: form child mutation: part-document: :invalid after required fieldset input append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: form child mutation: part-document: :has(:invalid) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: form child mutation: part-document: :has(:valid) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: form child mutation: part-document: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: form child mutation: part-document: :has(:invalid) after required input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: form child mutation: part-document: :has(:valid) after optional input append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: form child mutation: part-document: :has(:invalid) becomes false after required input removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: placeholder child mutation: part-document: :placeholder-shown becomes false after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: placeholder child mutation: part-document: :not(:placeholder-shown) becomes true after text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: placeholder child mutation: part-document: :placeholder-shown becomes true after text removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: placeholder child mutation: part-document: :has(:placeholder-shown) after textarea child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: placeholder child mutation: part-document: :has(:not(:placeholder-shown)) after filled textarea child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: placeholder child mutation: part-document: :has(:placeholder-shown) after textarea child append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: placeholder child mutation: part-document: :has(:not(:placeholder-shown)) after filled textarea child append | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: duplicate descendant invalidation rules merge: document | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: duplicate sibling invalidation rules merge: document | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: duplicate descendant invalidation rules merge: shadow-internal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-detached-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-detached-pseudo-stress.txt index d50cacf969..484a2c6db6 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-detached-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-detached-pseudo-stress.txt @@ -1,175 +1,175 @@ -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo-cold: part-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -182,66 +182,66 @@ PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([d PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 @@ -254,179 +254,179 @@ PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :h PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant attribute stress detached-pseudo: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress detached-pseudo: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress detached-pseudo-cold: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-pseudo-stress.txt index 7df5c28368..743dba4796 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-part-pseudo-stress.txt @@ -1,432 +1,432 @@ -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: part-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: part-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress pseudo-cold: part-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant attribute stress pseudo-warm: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(#hit-id) after descendant id change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit^='ye']) after descendant prefix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit$='es']) after descendant suffix attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit*='e']) after descendant substring attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit~='yes']) after descendant word attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:is(.hit, [data-hit])) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(:where(.hit, [data-hit])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:first-child) after first descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:last-child) after last descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:only-child) after only descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-warm: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: part-shadow-host-ancestor: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-detached-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-detached-pseudo-stress.txt index a80179b7ec..103e9537ae 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-detached-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-detached-pseudo-stress.txt @@ -1,19 +1,19 @@ PASS: descendant state stress detached-pseudo: document: :has(:checked) after checkbox checked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document: :has(:required) after input required | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: document: :has(:optional) becomes false after input required | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: document: :has(:optional) becomes false after input required | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document: :has(:disabled) after input disabled | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: document: :has(:enabled) becomes false after input disabled | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: document: :has(:enabled) becomes false after input disabled | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -22,28 +22,28 @@ PASS: descendant state stress detached-pseudo: document: :has(:checked + .after) PASS: descendant state stress detached-pseudo-cold: document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo-cold: document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:required) after input required | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:required) after input required | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:disabled) after input disabled | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:disabled) after input disabled | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked:first-child) after first checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked:first-child) after first checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -52,8 +52,8 @@ PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has( PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked + .after) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked ~ .after) after checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:checked ~ .after) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: document-styled-use-shadow: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 @@ -61,19 +61,19 @@ PASS: descendant state stress detached-pseudo-cold: document-styled-use-shadow: PASS: descendant state stress detached-pseudo: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -90,20 +90,20 @@ PASS: descendant state stress detached-pseudo: shadow-internal: :has(:checked):h PASS: descendant state stress detached-pseudo-cold: shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-host: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-host: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -112,189 +112,189 @@ PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked + .aft PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo: shadow-host: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo-cold: shadow-host: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked) after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked) after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: part-document: :has(:required) after input required | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:optional) becomes false after input required | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:disabled) after input disabled | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: descendant state stress detached-pseudo: part-document: :has(:required) after input required | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:optional) becomes false after input required | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-document: :has(:disabled) after input disabled | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress detached-pseudo-cold: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 -PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=0, hasResultCacheMisses=9 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=0, hasResultCacheMisses=9 +PASS: descendant state stress detached-pseudo: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:required) after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=16, hasResultCacheHits=7, hasResultCacheMisses=9 +PASS: descendant state stress detached-pseudo: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=15, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=17, hasResultCacheHits=7, hasResultCacheMisses=10 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=1, hasResultCacheMisses=9 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=19, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=19, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=3 -PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=1, hasResultCacheMisses=10 +PASS: descendant state stress detached-pseudo: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=16, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=17, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=18, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=19, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=12, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=14, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant state stress detached-pseudo: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=19, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-pseudo-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-pseudo-stress.txt index f84acec60a..cc9dcbf841 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-pseudo-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-state-pseudo-stress.txt @@ -1,19 +1,19 @@ PASS: descendant state stress pseudo-warm: document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -22,28 +22,28 @@ PASS: descendant state stress pseudo-warm: document: :has(:checked + .after) aft PASS: descendant state stress pseudo-cold: document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-cold: document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -52,28 +52,28 @@ PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:che PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: document-styled-use-shadow: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-cold: document-styled-use-shadow: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -82,28 +82,28 @@ PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked + .aft PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-cold: shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-host: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-host: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-host: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-host: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-host: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -112,189 +112,189 @@ PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked + .after) PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-warm: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant state stress pseudo-cold: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: shadow-host: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-warm: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-cold: shadow-host: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: shadow-host: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant state stress pseudo-cold: shadow-host: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-cold: part-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-warm: part-document: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: descendant state stress pseudo-warm: part-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant state stress pseudo-cold: part-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-warm: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-warm: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-cold: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=0, hasResultCacheMisses=8 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=7, hasResultCacheHits=0, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=0, hasResultCacheMisses=9 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-host-document: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=4, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=16, hasResultCacheHits=7, hasResultCacheMisses=9 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=4, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=17, hasResultCacheHits=7, hasResultCacheMisses=10 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=10, hasResultCacheHits=1, hasResultCacheMisses=9 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=6, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=6, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=9, hasResultCacheHits=1, hasResultCacheMisses=8 -PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=11, hasResultCacheHits=1, hasResultCacheMisses=10 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-host-internal: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked) becomes false after checkbox unchecked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:required) after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:optional) becomes false after input required | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:disabled) after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:enabled) becomes false after input disabled | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) after textarea placeholder added | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:placeholder-shown) becomes false after textarea value append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=12, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked:first-child) after first checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked:nth-child(2)) after second checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked + .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked ~ .after) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:checked)) becomes false after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:is(:checked, .fallback)) after checkbox checked | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant state stress pseudo-warm: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=5, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant state stress pseudo-cold: part-shadow-host-ancestor: :has(:checked):has(:disabled) after independent state changes | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=13, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-stress.txt index 56f3dd3a70..a9295e798e 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-stress.txt @@ -28,20 +28,20 @@ PASS: descendant attribute stress pseudo-warm: document: :has(span.hit:not(.miss PASS: descendant attribute stress pseudo-cold: document: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: document: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -52,8 +52,8 @@ PASS: descendant attribute stress pseudo-warm: document: :has(.hit.extra) after PASS: descendant attribute stress pseudo-cold: document: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -80,8 +80,8 @@ PASS: descendant attribute stress pseudo-warm: document: :has([data-hit|='yes']) PASS: descendant attribute stress pseudo-cold: document: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -100,8 +100,8 @@ PASS: descendant attribute stress pseudo-warm: document: :has(.hit:not([data-mis PASS: descendant attribute stress pseudo-cold: document: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -128,16 +128,16 @@ PASS: descendant attribute stress pseudo-warm: document: :has(.hit:nth-child(2)) PASS: descendant attribute stress pseudo-cold: document: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: document: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -152,12 +152,12 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=0, elementStyleNoopRecomputations=0, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=1, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -172,20 +172,20 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -196,8 +196,8 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -224,8 +224,8 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -244,8 +244,8 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -272,16 +272,16 @@ PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has( PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: document-styled-use-shadow: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: document-styled-use-shadow: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -316,20 +316,20 @@ PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(span.hit:no PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -340,8 +340,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit.extra) PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -368,8 +368,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit|= PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -388,8 +388,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit:not([d PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -416,16 +416,16 @@ PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(.hit:nth-ch PASS: descendant attribute stress pseudo-cold: shadow-internal: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-internal: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-internal: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -440,12 +440,12 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.HIT) after mat PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.HIT) after matching uppercase descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.HIT) ignores lowercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant attribute stress cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) ignores uppercase descendant class change in standards mode | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -460,20 +460,20 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has(span.hit:not(.m PASS: descendant attribute stress pseudo-cold: shadow-host: :has(span.hit:not(.miss)) after descendant compound change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :not(:has(.hit)) becomes false after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: shadow-host: :has(:is(.hit)) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) becomes false after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant attribute removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :not(:has(.hit)) becomes true after descendant class removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -484,8 +484,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit.extra) aft PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit.extra) after descendant second class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit) becomes false after descendant className clear | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit='yes']) after descendant attribute value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -512,8 +512,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit|='yes PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit|='yes']) after descendant dash attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit='yes']) becomes false after descendant value change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has([hidden]) after descendant hidden property change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -532,8 +532,8 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit:not([data- PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit:not([data-miss])) after descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit:not([data-miss])) becomes false after descendant miss attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit + .after) after descendant sibling class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -560,16 +560,16 @@ PASS: descendant attribute stress pseudo-warm: shadow-host: :has(.hit:nth-child( PASS: descendant attribute stress pseudo-cold: shadow-host: :has(.hit:nth-child(2)) after second descendant class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :not(:has([data-hit])) becomes false after descendant attribute change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit]) becomes true after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress warm: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant attribute stress pseudo-warm: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant attribute stress pseudo-cold: shadow-host: :has([data-hit]) becomes false after descendant toggleAttribute | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant attribute stress warm: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress cold: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant attribute stress pseudo-warm: shadow-host: :has(#hit-id.extra) after descendant id and class change | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=2, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-text-stress.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-text-stress.txt index f77bf553a4..fc736e3099 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-text-stress.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-descendant-text-stress.txt @@ -1,11 +1,11 @@ PASS: descendant text stress warm: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -16,12 +16,12 @@ PASS: descendant text stress detached-pseudo: document: :has(:not(:empty)) becom PASS: descendant text stress detached-pseudo-cold: document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -32,12 +32,12 @@ PASS: descendant text stress detached-pseudo: document: :has(.hit:not(:empty)) b PASS: descendant text stress detached-pseudo-cold: document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -48,20 +48,20 @@ PASS: descendant text stress detached-pseudo: document: :has(:not(:empty):first- PASS: descendant text stress detached-pseudo-cold: document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached-cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:empty) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant text stress warm: document-styled-use-shadow: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -72,12 +72,12 @@ PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(: PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached-cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant text stress warm: document-styled-use-shadow: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -88,12 +88,12 @@ PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(. PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached-cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant text stress warm: document-styled-use-shadow: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -104,20 +104,20 @@ PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :has(: PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached-cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo-cold: document-styled-use-shadow: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=8, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 PASS: descendant text stress warm: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-pseudo: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -128,12 +128,12 @@ PASS: descendant text stress detached-pseudo: shadow-internal: :has(:not(:empty) PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-pseudo: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -144,12 +144,12 @@ PASS: descendant text stress detached-pseudo: shadow-internal: :has(.hit:not(:em PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-pseudo: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -160,20 +160,20 @@ PASS: descendant text stress detached-pseudo: shadow-internal: :has(:not(:empty) PASS: descendant text stress detached-pseudo-cold: shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-pseudo: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-host: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-host: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -184,12 +184,12 @@ PASS: descendant text stress detached-pseudo: shadow-host: :has(:not(:empty)) be PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-host: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-host: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -200,12 +200,12 @@ PASS: descendant text stress detached-pseudo: shadow-host: :has(.hit:not(:empty) PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: shadow-host: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: shadow-host: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 @@ -216,12 +216,12 @@ PASS: descendant text stress detached-pseudo: shadow-host: :has(:not(:empty):fir PASS: descendant text stress detached-pseudo-cold: shadow-host: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-warm: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: shadow-host: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: slotted-default: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: slotted-default: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: slotted-default: :has(:empty) becomes false after descendant text insert | styleInvalidations=10, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 @@ -344,12 +344,12 @@ PASS: descendant text stress detached-pseudo: part-document: :has(:empty) become PASS: descendant text stress detached-pseudo-cold: part-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-warm: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -360,12 +360,12 @@ PASS: descendant text stress detached-pseudo: part-document: :has(.hit:empty) be PASS: descendant text stress detached-pseudo-cold: part-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-warm: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -376,12 +376,12 @@ PASS: descendant text stress detached-pseudo: part-document: :has(:empty:first-c PASS: descendant text stress detached-pseudo-cold: part-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-warm: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress detached-pseudo-cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=7, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 @@ -393,280 +393,280 @@ PASS: descendant text stress detached-pseudo-cold: part-document: :not(:has(:not PASS: descendant text stress warm: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached-cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-document: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=9, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:empty) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=1, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: descendant text stress pseudo-warm: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 -PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=1, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=1 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-internal: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress pseudo-warm: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: descendant text stress detached-pseudo: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=11, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:empty) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty)) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:empty) becomes false after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(.hit:not(:empty)) becomes true after descendant textContent insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:empty:first-child) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress warm: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress detached: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :has(:not(:empty):first-child) becomes true after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress warm: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: descendant text stress cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress pseudo-warm: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: descendant text stress pseudo-cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: descendant text stress detached: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: descendant text stress detached-cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 -PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: descendant text stress detached-pseudo: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=13, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: descendant text stress detached-pseudo-cold: part-shadow-host-ancestor: :not(:has(:not(:empty))) becomes false after descendant text insert | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-detached-reconnect.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-detached-reconnect.txt index 44a13c6cd2..8992052b76 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-detached-reconnect.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-detached-reconnect.txt @@ -17,23 +17,23 @@ PASS: detached child mutation: slotted-shadow-host-default: :has(.hit) after dir PASS: detached child mutation: slotted-shadow-host-default: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=13, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: slotted-shadow-host-default: :has(.hit, .fallback) after first-list child append | styleInvalidations=7, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: detached pseudo-element child mutation: part-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit) after direct child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=10, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: detached pseudo-element child mutation: part-shadow-host-document: :has(.hit, .fallback) after first-list child append | styleInvalidations=6, fullStyleInvalidations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit) after direct child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 -PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=2 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit ~ .after) after indirect sibling append | styleInvalidations=14, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: detached child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, 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=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: detached pseudo-element child mutation: part-shadow-host-ancestor: :has(.hit, .fallback) after first-list child append | styleInvalidations=8, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=1, hasResultCacheHits=0, hasResultCacheMisses=1 PASS: precomputed detached insertion: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: precomputed detached insertion stress append: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: precomputed detached insertion stress prepend: descendant class selector | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 diff --git a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-shadow-part-exposure.txt b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-shadow-part-exposure.txt index 79b7222d89..4dfbc567d3 100644 --- a/Tests/LibWeb/Text/expected/css/style-invalidation/structural-shadow-part-exposure.txt +++ b/Tests/LibWeb/Text/expected/css/style-invalidation/structural-shadow-part-exposure.txt @@ -19,38 +19,38 @@ PASS: part child mutation: part-document: ::part():dir(rtl) after dir=auto text PASS: part pseudo-element child mutation: part-document: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-document: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=5, hasResultCacheHits=2, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-document: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part pseudo-element child mutation: part-document: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 -PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-document: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-document: ::part():empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -72,38 +72,38 @@ PASS: part child mutation: part-shadow-host-document: ::part():dir(rtl) after di PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=6, hasResultCacheHits=2, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=3, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=6, hasResultCacheHits=0, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=5, hasResultCacheHits=0, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-document: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=4, hasResultCacheHits=0, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-document: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-document: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=1, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation: part-shadow-internal: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-internal: ::part():empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -125,38 +125,38 @@ PASS: part child mutation: part-shadow-internal: ::part():dir(rtl) after dir=aut PASS: part pseudo-element child mutation: part-shadow-internal: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=8, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=8, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=12, hasResultCacheHits=6, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-internal: ::part():empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -178,38 +178,38 @@ PASS: part child mutation: part-shadow-host-internal: ::part():dir(rtl) after di PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=8, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=8, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=10, hasResultCacheHits=5, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=13, hasResultCacheHits=6, hasResultCacheMisses=7 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=11, hasResultCacheHits=5, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=4, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=3, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=9, hasResultCacheHits=4, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-internal: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=2, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-ancestor: ::part():empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -231,38 +231,38 @@ PASS: part child mutation: part-shadow-ancestor: ::part():dir(rtl) after dir=aut PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=3, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 -PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=5, hasResultCacheHits=1, hasResultCacheMisses=4 +PASS: part pseudo-element child mutation: part-shadow-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=7, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():empty becomes false after element append | styleInvalidations=2, fullStyleInvalidations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-ancestor: ::part():empty becomes false after textContent | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 @@ -284,37 +284,37 @@ PASS: part child mutation: part-shadow-host-ancestor: ::part():dir(rtl) after di PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():dir(rtl) after dir=auto text mutation | styleInvalidations=0, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(> .hit) after direct child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=3, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.outer .middle .hit) after deep child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit + .after) after adjacent sibling append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=5, fullStyleInvalidations=0, elementStyleRecomputations=6, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=8, hasResultCacheHits=1, hasResultCacheMisses=7 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit ~ .after) after indirect sibling append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=11, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(rect.hit) after SVG child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=7, hasResultCacheHits=1, hasResultCacheMisses=6 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit:first-child) after prepend | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=10, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=5, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit:last-child) becomes false after trailing sibling append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():not(:has(.hit)) becomes false after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(:is(.hit, [data-hit])) after child append | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=3, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=4, hasResultCacheHits=1, hasResultCacheMisses=3 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) becomes false after child removal | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=2, elementStyleNoopRecomputations=1, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=3, hasResultCacheHits=0, hasResultCacheMisses=3 PASS: part child mutation: part-shadow-host-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 -PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=3, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 -PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=6, hasResultCacheHits=1, hasResultCacheMisses=5 +PASS: part pseudo-element child mutation: part-shadow-host-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 +PASS: part pseudo-element child mutation without warmup: part-shadow-host-ancestor: ::part():has(.hit) after replaceChildren | styleInvalidations=1, fullStyleInvalidations=0, elementStyleRecomputations=9, elementStyleNoopRecomputations=2, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=1, hasInvalidationMetadataCandidates=0, hasMatchInvocations=2, hasResultCacheHits=0, hasResultCacheMisses=2 PASS: scope move: slotted shadow-host target moves between slot scopes | styleInvalidations=4, fullStyleInvalidations=0, elementStyleRecomputations=8, elementStyleNoopRecomputations=4, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 PASS: combined topology: ancestor shadow exposes part slot with generated pseudo-element | styleInvalidations=2, fullStyleInvalidations=0, elementStyleRecomputations=4, elementStyleNoopRecomputations=3, elementInheritedStyleRecomputations=0, elementInheritedStyleNoopRecomputations=0, hasAncestorWalkInvocations=0, hasInvalidationMetadataCandidates=0, hasMatchInvocations=0, hasResultCacheHits=0, hasResultCacheMisses=0 diff --git a/Tests/LibWeb/Text/input/css/getComputedStyle-pseudo-element.html b/Tests/LibWeb/Text/input/css/getComputedStyle-pseudo-element.html index caf4a9cf1e..420ac39726 100644 --- a/Tests/LibWeb/Text/input/css/getComputedStyle-pseudo-element.html +++ b/Tests/LibWeb/Text/input/css/getComputedStyle-pseudo-element.html @@ -9,6 +9,10 @@ content: "hi"; background-color: cyan; } + ::after { + content: "bye"; + color: green; + }