OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <body> | 3 <body> |
4 <script src="../../js/resources/js-test-pre.js"></script> | 4 <script src="../../js/resources/js-test-pre.js"></script> |
5 <script> | 5 <script> |
| 6 jsTestIsAsync = true; |
| 7 |
6 var callbackWasTriggered = false; | 8 var callbackWasTriggered = false; |
7 | 9 |
8 var callback = function(node) { | 10 var callback = function(node) { |
9 callbackWasTriggered = true; | 11 callbackWasTriggered = true; |
10 return NodeFilter.FILTER_ACCEPT; | 12 return NodeFilter.FILTER_ACCEPT; |
11 }; | 13 }; |
12 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE
MENT, callback, false); | 14 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE
MENT, callback, false); |
13 | 15 |
14 var callbackObservation = internals.observeGC(callback); | 16 var callbackObservation = internals.observeGC(callback); |
15 callback = null; | 17 callback = null; |
16 var nodeFilterObservation = internals.observeGC(nodeIterator.filter); | 18 var nodeFilterObservation = internals.observeGC(nodeIterator.filter); |
17 var nodeIteratorObservation = internals.observeGC(nodeIterator); | 19 var nodeIteratorObservation = internals.observeGC(nodeIterator); |
18 | 20 |
19 gc(); | 21 gc(); |
20 shouldBeFalse('nodeFilterObservation.wasCollected'); | 22 shouldBeFalse('nodeFilterObservation.wasCollected'); |
21 shouldBeFalse('callbackObservation.wasCollected'); | 23 shouldBeFalse('callbackObservation.wasCollected'); |
22 | 24 |
23 nodeIterator.nextNode(); | 25 nodeIterator.nextNode(); |
24 shouldBeTrue('callbackWasTriggered'); | 26 shouldBeTrue('callbackWasTriggered'); |
25 | 27 |
26 nodeIterator = null; | 28 nodeIterator = null; |
27 gc(); | 29 |
28 shouldBeTrue('nodeIteratorObservation.wasCollected'); | 30 testRunner.evaluateScriptInIsolatedWorld(1, 'document.getElementById("body")
'); // create a wrapper in isolated world |
29 shouldBeTrue('nodeFilterObservation.wasCollected'); | 31 internals.garbageCollectV8WithoutContext(); |
30 shouldBeTrue('callbackObservation.wasCollected'); | 32 |
| 33 setTimeout(function() { |
| 34 shouldBeTrue('nodeIteratorObservation.wasCollected'); |
| 35 shouldBeTrue('nodeFilterObservation.wasCollected'); |
| 36 shouldBeTrue('callbackObservation.wasCollected'); |
| 37 |
| 38 finishJSTest(); |
| 39 }, 0); |
31 </script> | 40 </script> |
32 <script src="../../js/resources/js-test-post.js"></script> | 41 <script src="../../js/resources/js-test-post.js"></script> |
33 </body> | 42 </body> |
34 </html> | 43 </html> |
OLD | NEW |