| <html> | |
| <head> | |
| <script> | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| function gc() | |
| { | |
| if (window.GCController) | |
| return GCController.collect(); | |
| for (var i = 0; i < 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect). | |
| var s = new String("abc"); | |
| } | |
| } | |
| function runTest() | |
| { | |
| iteratorRoot = document.createElement('p'); | |
| element = iteratorRoot.appendChild(document.createElement('p')); | |
| element.appendChild(document.createElement('p')); | |
| iterator = document.createNodeIterator(iteratorRoot, -1); | |
| iterator.nextNode(); iterator.nextNode(); iterator.nextNode(); | |
| iterator.previousNode(); | |
| iteratorRoot.removeChild(element); | |
| otherDocument = document.implementation.createHTMLDocument(); | |
| otherDocument.body.appendChild(iteratorRoot); | |
| delete iterator; | |
| gc(); | |
| div = document.body.appendChild(document.createElement('div')); | |
| document.body.removeChild(div); | |
| gc(); | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| } | |
| </script> | |
| </head> | |
| <body onload="runTest()"> | |
| Test passes if it does not crash. | |
| </body> | |
| </html> | |