1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">
4 <script src=
"../../resources/js-test.js"></script>
7 <p id=
"description"></p>
8 <div id=
"console"></div>
10 description('Tests that setting .length on an HTMLSelectElement works in the presence of mutation listeners that remove option elements.');
12 function onRemove(e
) {
13 if (e
.target
.nextSibling
!= null) {
14 // remove listener temporarily to avoid lots of nesting
15 sel
.removeEventListener('DOMNodeRemoved', onRemove
, false);
16 e
.target
.nextSibling
.parentNode
.removeChild(e
.target
.nextSibling
);
17 sel
.addEventListener('DOMNodeRemoved', onRemove
, false);
19 GCController
.collect(); // Use a single GC here to avoid test TIMEOUTs.
22 var sel
= document
.createElement('select');
23 document
.body
.appendChild(sel
);
25 sel
.addEventListener('DOMNodeRemoved', onRemove
, false);
26 sel
.addEventListener('DOMNodeInserted', function() {}, false);
29 shouldBe('sel.length', '200');
32 shouldBe('sel.length', '100');
35 shouldBe('sel.length', '180');