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

if (window.layoutTestController)
    layoutTestController.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>
