Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/NodeIterator/NodeIterator-dont-overcollect.html

Issue 1999013002: Modify some gc related layout tests to work with Ignition. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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> 5 <script>
6 var callbackWasTriggered = false; 6 var callbackWasTriggered = false;
7 7
8 var callback = function(node) { 8 var callback = function(node) {
9 callbackWasTriggered = true; 9 callbackWasTriggered = true;
10 return NodeFilter.FILTER_ACCEPT; 10 return NodeFilter.FILTER_ACCEPT;
11 }; 11 };
12 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE MENT, callback, false);
13 12
14 // Do not pass the object as a parameter to observeGC function. This may 13 var nodeIterator, callbackObservation, nodeFilterObservation, nodeIteratorOb servation;
15 // remain live on this function's stack preventing GC from collecting
16 // it. Accessing the object inside an inner function will prevent any
17 // unneeded references on this function's stack.
18 var callbackObservation = internals.observeGC((() => {return callback;})());
19 callback = null;
20 var nodeFilterObservation = internals.observeGC((() => {return nodeIterator. filter;})());
21 var nodeIteratorObservation = internals.observeGC((() => {return nodeIterato r;})());
22 14
15 // Do initialization work in an inner function to avoid references to
16 // objects remaining live on this function's stack frame.
17 // (http://crbug.com/595672/).
18 function initialize() {
19 nodeIterator = document.createNodeIterator(document,
20 NodeFilter.SHOW_ELEMENT, callback, false);
21 callbackObservation = internals.observeGC(callback);
22 callback = null;
23 nodeFilterObservation = internals.observeGC(nodeIterator.filter);
24 nodeIteratorObservation = internals.observeGC(nodeIterator);
25 }
26
27 initialize();
23 gc(); 28 gc();
24 shouldBeFalse('nodeFilterObservation.wasCollected'); 29 shouldBeFalse('nodeFilterObservation.wasCollected');
25 shouldBeFalse('callbackObservation.wasCollected'); 30 shouldBeFalse('callbackObservation.wasCollected');
26 31
27 nodeIterator.nextNode(); 32 nodeIterator.nextNode();
28 shouldBeTrue('callbackWasTriggered'); 33 shouldBeTrue('callbackWasTriggered');
29 34
30 nodeIterator = null; 35 nodeIterator = null;
31 gc(); 36 gc();
32 shouldBeTrue('nodeIteratorObservation.wasCollected'); 37 shouldBeTrue('nodeIteratorObservation.wasCollected');
33 shouldBeTrue('nodeFilterObservation.wasCollected'); 38 shouldBeTrue('nodeFilterObservation.wasCollected');
34 shouldBeTrue('callbackObservation.wasCollected'); 39 shouldBeTrue('callbackObservation.wasCollected');
35 </script> 40 </script>
36 </body> 41 </body>
37 </html> 42 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698