<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<script src="resources/utils.js"></script>
<style>
  body.default_ltr .default { direction: ltr; }
  body.default_ltr .alternative { direction: rtl; }

  body.default_rtl .default { direction: rtl; }
  body.default_rtl .alternative { direction: ltr; }
  div { margin-inline-start: 10px; }
  /* Give the cascade something to do: */
  div { border: 0px solid red; }
  div { border: 0px solid green !important; }
  div { border: 0px solid black; }
  div { padding: 0px; }
</style>
<body class="default_ltr"></body>
<script>

  function createTree(node, siblings, depth) {
    if (!depth)
      return;
    for (let i = 0; i < siblings; i++) {
        var div = document.createElement('div');
        div.className = (depth % 2 == 0) ? 'default' : 'alternative';
        node.append(div);
        createTree(div, siblings, depth - 1);
    }
  }
  createTree(document.body, 4, 6);

  PerfTestRunner.measureTime({
      description: 'Measure impact of switching direction with css-logical',
      run: function() {
        document.body.classList.toggle('default_ltr');
        document.body.classList.toggle('default_rtl');
        forceStyleRecalc(document.body);
      }
  });
</script>
