| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <body> | 3 <body> |
| 4 <script src="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.js"></script> |
| 5 <script src="../../../resources/observeGC.js"></script> |
| 5 <script> | 6 <script> |
| 6 var callbackWasTriggered = false; | 7 var callbackWasTriggered = false; |
| 7 | 8 |
| 8 var callback = function(node) { | 9 var callback = function(node) { |
| 9 callbackWasTriggered = true; | 10 callbackWasTriggered = true; |
| 10 return NodeFilter.FILTER_ACCEPT; | 11 return NodeFilter.FILTER_ACCEPT; |
| 11 }; | 12 }; |
| 12 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE
MENT, callback, false); | 13 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE
MENT, callback, false); |
| 13 | 14 |
| 14 var callbackObservation = internals.observeGC(callback); | 15 var callbackObservation = observeGC(() => {return callback;}); |
| 15 callback = null; | 16 callback = null; |
| 16 var nodeFilterObservation = internals.observeGC(nodeIterator.filter); | 17 var nodeFilterObservation = observeGC(() => {return nodeIterator.filter;}); |
| 17 var nodeIteratorObservation = internals.observeGC(nodeIterator); | 18 var nodeIteratorObservation = observeGC(() => {return nodeIterator;}); |
| 18 | 19 |
| 19 gc(); | 20 gc(); |
| 20 shouldBeFalse('nodeFilterObservation.wasCollected'); | 21 shouldBeFalse('nodeFilterObservation.wasCollected'); |
| 21 shouldBeFalse('callbackObservation.wasCollected'); | 22 shouldBeFalse('callbackObservation.wasCollected'); |
| 22 | 23 |
| 23 nodeIterator.nextNode(); | 24 nodeIterator.nextNode(); |
| 24 shouldBeTrue('callbackWasTriggered'); | 25 shouldBeTrue('callbackWasTriggered'); |
| 25 | 26 |
| 26 nodeIterator = null; | 27 nodeIterator = null; |
| 27 gc(); | 28 gc(); |
| 28 shouldBeTrue('nodeIteratorObservation.wasCollected'); | 29 shouldBeTrue('nodeIteratorObservation.wasCollected'); |
| 29 shouldBeTrue('nodeFilterObservation.wasCollected'); | 30 shouldBeTrue('nodeFilterObservation.wasCollected'); |
| 30 shouldBeTrue('callbackObservation.wasCollected'); | 31 shouldBeTrue('callbackObservation.wasCollected'); |
| 31 </script> | 32 </script> |
| 32 </body> | 33 </body> |
| 33 </html> | 34 </html> |
| OLD | NEW |