chromium/third_party/blink/perf_tests/css/HasSiblingInvalidationAllSubjects.html

<!DOCTYPE html>
<html>
<head>
<script src="../resources/runner.js"></script>
<style>
  div { color: grey }
  .a:has(~ .b) { color: green }
</style>
</head>
<body>
<div id=container><div class=a></div></div>
<script>

function makeTree(siblings) {
  for (var i = 0; i < siblings; i++) {
    var child = document.createElement("div");
    child.classList.add("a");
    child.id = "child" + i;
    container.appendChild(child);
  }
}

makeTree(100);
container.offsetHeight; // force recalc style

var runFunction = function()
{
  child0.classList.toggle("b");
  container.offsetHeight; // force recalc style
  child0.classList.toggle("b");
  container.offsetHeight; // force recalc style

  child99.classList.toggle("b");
  container.offsetHeight; // force recalc style
  child99.classList.toggle("b");
  container.offsetHeight; // force recalc style
}

PerfTestRunner.measureRunsPerSecond({
  description: "Measures performance of the '.a:has(~ .b)' invalidation with all subject elements.",
  run: runFunction
});

</script>
</body>
</html>