<html>
<head>
<script type="text/javascript">

if (window.testRunner)
    testRunner.dumpAsText();

function boom()
{
  var tr = document.getElementById("tr1");
  var xxx = document.getElementById("tr1").firstChild;

  tr.insertBefore(document.createTextNode("0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"), xxx);

  tr.insertBefore(document.getElementById("f1").cloneNode(true), xxx);
}
</script>
<style>
.table {
    display: table;
}

.tbody {
    display: table-row-group;
}

.tr {
    display: table-row;
}

.td {
    display: table-cell;
}

</style>
</head>

<div>This test checks whether a particular odd arrangement of DOM
nodes results in render tree consistency violations.</div>

<body onload="boom()">

<div class="table" border="1" id="tr1">
 xxx
<div class="tbody">
 <div class="tr">
  <div class="td">Whee</div>
 </div>
</div>
</div>

<form id="f1">QQQ</form>

</body>
</html>
