<!--
 | Ensures that updating a textNode properly refreshes the layout.
 -->

<html>
<head>

  <style>
    #to-mutate {
      font-size: 100px;
    }
  </style>

  <script>
    if (window.testRunner) {
      window.testRunner.waitUntilDone();
    }

    window.onload = function() {
      if (window.testRunner) {
        window.testRunner.DoNonMeasuredLayout();
      }

      var region = document.getElementById("to-mutate");
      region.firstChild.textContent = "123";

      if (window.testRunner) {
        window.testRunner.notifyDone();
      }
    }
  </script>

</head>

<body>
  <div id="to-mutate">foo</div>
</body>

</html>
