38 lines
1.3 KiB
HTML
38 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<body>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
<div id="parent1">text</div>
|
|
<div id="parent2">text</div>
|
|
<script>
|
|
function handleInsertion() {
|
|
document.removeEventListener('DOMNodeInserted', handleInsertion);
|
|
parent.innerHTML = '';
|
|
}
|
|
document.addEventListener('DOMNodeInserted', handleInsertion);
|
|
var parent = document.getElementById('parent1');
|
|
var range = document.createRange();
|
|
range.setStart(parent, 0);
|
|
range.setEnd(parent, 0);
|
|
range.insertNode(document.createElement('span'));
|
|
parent.remove();
|
|
|
|
function handleInsertion2() {
|
|
if (parent.childNodes.length != 3)
|
|
return;
|
|
var textNodeCreatedBySplitText = parent.lastChild;
|
|
parent.removeChild(textNodeCreatedBySplitText);
|
|
document.removeEventListener('DOMNodeInserted', handleInsertion2);
|
|
}
|
|
document.addEventListener('DOMNodeInserted', handleInsertion2);
|
|
parent = document.getElementById('parent2');
|
|
range.setStart(parent2.firstChild, 2);
|
|
range.setEnd(parent2.firstChild, 2);
|
|
range.insertNode(document.createElement('span'));
|
|
|
|
description('No assertion failures even if a DOM mutation event handler updates nodes in a Range during Range::insertNode.');
|
|
testPassed('if this did not crash.');
|
|
parent.remove();
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|