<html xmlns="http://www.w3.org/1999/xhtml">
<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>
</head>

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

<body onload="boom()">

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

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

</body>
</html>
