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

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: Fixed more comments. Created 4 years, 6 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 var nodeIterator, callbackObservation, nodeFilterObservation,
8 nodeIteratorObservation;
7 9
8 var callback = function(node) { 10 // Do initialization work in an inner function to avoid references to
11 // objects remaining live on this function's stack frame.
12 // (http://crbug.com/595672/).
13 (function() {
14 var callback = function(node) {
9 callbackWasTriggered = true; 15 callbackWasTriggered = true;
10 return NodeFilter.FILTER_ACCEPT; 16 return NodeFilter.FILTER_ACCEPT;
11 }; 17 };
12 var nodeIterator = document.createNodeIterator(document, NodeFilter.SHOW_ELE MENT, callback, false);
13 18
14 // Do not pass the object as a parameter to observeGC function. This may 19 nodeIterator = document.createNodeIterator(document,
15 // remain live on this function's stack preventing GC from collecting 20 NodeFilter.SHOW_ELEMENT, callback, false);
16 // it. Accessing the object inside an inner function will prevent any 21 callbackObservation = internals.observeGC(callback);
17 // unneeded references on this function's stack. 22 nodeFilterObservation = internals.observeGC(nodeIterator.filter);
18 var callbackObservation = internals.observeGC((() => {return callback;})()); 23 nodeIteratorObservation = internals.observeGC(nodeIterator);
19 callback = null; 24 })()
20 var nodeFilterObservation = internals.observeGC((() => {return nodeIterator. filter;})());
21 var nodeIteratorObservation = internals.observeGC((() => {return nodeIterato r;})());
22 25
23 gc(); 26 gc();
24 shouldBeFalse('nodeFilterObservation.wasCollected'); 27 shouldBeFalse('nodeFilterObservation.wasCollected');
25 shouldBeFalse('callbackObservation.wasCollected'); 28 shouldBeFalse('callbackObservation.wasCollected');
26 29
27 nodeIterator.nextNode(); 30 nodeIterator.nextNode();
28 shouldBeTrue('callbackWasTriggered'); 31 shouldBeTrue('callbackWasTriggered');
29 32
30 nodeIterator = null; 33 nodeIterator = null;
31 gc(); 34 gc();
32 shouldBeTrue('nodeIteratorObservation.wasCollected'); 35 shouldBeTrue('nodeIteratorObservation.wasCollected');
33 shouldBeTrue('nodeFilterObservation.wasCollected'); 36 shouldBeTrue('nodeFilterObservation.wasCollected');
34 shouldBeTrue('callbackObservation.wasCollected'); 37 shouldBeTrue('callbackObservation.wasCollected');
35 </script> 38 </script>
36 </body> 39 </body>
37 </html> 40 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698