blob: 69eec3d5a71fa37b61b45003842628cf1488839a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description('Tests that setting .length on an HTMLSelectElement works in the presence of mutation listeners that remove option elements.');
function onRemove(e) {
if (e.target.nextSibling != null) {
// remove listener temporarily to avoid lots of nesting
sel.removeEventListener('DOMNodeRemoved', onRemove, false);
e.target.nextSibling.parentNode.removeChild(e.target.nextSibling);
sel.addEventListener('DOMNodeRemoved', onRemove, false);
}
gc();
}
var sel = document.createElement('select');
document.body.appendChild(sel);
sel.addEventListener('DOMNodeRemoved', onRemove, false);
sel.addEventListener('DOMNodeInserted', function() {}, false);
sel.length = 200;
shouldBe('sel.length', '200');
sel.length = 100;
shouldBe('sel.length', '100');
sel.length = 180;
shouldBe('sel.length', '180');
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>