<!DOCTYPE html>
<meta charset="utf-8">
<link rel="match" href="change-text-node-data-tab-expected.html">
<style>
pre {
  display: inline-block;
  float: left;
  background: silver;
  width: 100px;
  height: 100px;
  margin: 20px;
  font-family: monospace;
  font-size: 10px;
  overflow: hidden;
  white-space: pre-wrap;
  contain: layout size;
  line-height: 1;
}
.first-line::first-line {
  font-size: 15px;
}
</style>
<script>
  const originalValues = [
    "foo",
    "foo",
  ];
  const newValues = [
    "bar bar bar",
    "bar\tbar\tbar",
  ];

  function setupTest() {
    originalValues.forEach((text) => {
      let pre = document.createElement("pre");
      pre.appendChild(document.createTextNode(text));
      document.body.appendChild(pre);
    });

    originalValues.forEach((text) => {
      let firstLinePre = document.createElement("pre");
      firstLinePre.className = "first-line";
      firstLinePre.appendChild(document.createTextNode(text));
      document.body.appendChild(firstLinePre);
    });
  }

  function changeTextNodeData() {
    let pres = document.getElementsByTagName("pre");
    for (let i = 0; i < pres.length; i++) {
      pres[i].childNodes[0].data = newValues[i % newValues.length];
    }
  }

  function runTest() {
    setupTest();
    document.body.offsetLeft;
    changeTextNodeData();
  }
</script>
<body onload="runTest();">
</body>
