<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function log(msg)
{
document.body.appendChild(document.createTextNode(msg));
}
function appendItem(list, caption)
{
var item = document.createElement('li');
item.appendChild(document.createTextNode(caption));
list.appendChild(item);
}
function runTests()
{
if (window.testRunner)
testRunner.dumpAsText();
var fragment = document.createDocumentFragment();
var list = document.createElement('ul');
var i;
for (i = 0; i < 5; i++)
appendItem(list, 'item ' + i);
fragment.appendChild(list);
document.addEventListener("DOMNodeRemoved", function() {
appendItem(list, 'item ' + i++);
}, false);
document.body.appendChild(fragment);
list.textContent = '';
if (list.childNodes.length == 0)
log('PASS: No infinite loop.')
else
log('FAIL: Has too many children.')
}
</script>
</head>
<body onload="runTests();">
</body>
</html>