OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <body> | 2 <body> |
3 <script src="../../resources/js-test.js"></script> | 3 <script src="../../resources/js-test.js"></script> |
4 <script> | 4 <script> |
5 jsTestIsAsync = true; | 5 jsTestIsAsync = true; |
6 description("MessagePorts (and their execution contexts) should be collected by
GC once close() has been called on them"); | 6 description("MessagePorts (and their execution contexts) should be collected by
GC once close() has been called on them"); |
7 function runTest() { | 7 function runTest() { |
8 var channel = new MessageChannel(); | 8 var channel = new MessageChannel(); |
9 var port = channel.port1; | 9 var port = channel.port1; |
10 port.onmessage = function() { | 10 port.onmessage = function() { |
11 iframeDocGC = internals.observeGC(document.querySelector('iframe').conte
ntDocument); | 11 iframeDocGC = internals.observeGC(document.querySelector('iframe').conte
ntDocument); |
12 document.querySelector('iframe').remove(); | 12 document.querySelector('iframe').remove(); |
13 gc(); | 13 gc(); |
14 gc(); | |
15 shouldBeTrue("iframeDocGC.wasCollected"); | 14 shouldBeTrue("iframeDocGC.wasCollected"); |
16 finishJSTest(); | 15 finishJSTest(); |
17 }; | 16 }; |
18 window.frames[0].postMessage("connect", "*", [channel.port2]); | 17 window.frames[0].postMessage("connect", "*", [channel.port2]); |
19 } | 18 } |
20 </script> | 19 </script> |
21 <iframe src="resources/message-port-gc-closed-cloned-iframe.html" onload="runTes
t()"></iframe> | 20 <iframe src="resources/message-port-gc-closed-cloned-iframe.html" onload="runTes
t()"></iframe> |
22 </body> | 21 </body> |
OLD | NEW |