<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.createElement("td"), xxx);
}

</script>
<style>
.table {
    display: table;
}

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

.tr {
    display: table-row;
}

.td {
    display: table-cell;
}

</style>

</head>

<body onload="boom()">

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

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

</body>
</html>
