| Index: LayoutTests/fast/events/message-port-gc-closed.html
|
| diff --git a/LayoutTests/fast/events/message-port-gc-closed.html b/LayoutTests/fast/events/message-port-gc-closed.html
|
| index 0be397f62a154a78942ab169725bd02f38ad1935..4cc906ac01e6d48f7137bbe1ba35e4e19ad4ad8b 100644
|
| --- a/LayoutTests/fast/events/message-port-gc-closed.html
|
| +++ b/LayoutTests/fast/events/message-port-gc-closed.html
|
| @@ -5,18 +5,21 @@
|
| description("MessagePorts (and their execution contexts) should be collected by GC once close() has been called on them");
|
|
|
| window.jsTestIsAsync = true;
|
| +
|
| +function runGCAndTest() {
|
| + gc();
|
| + shouldBeTrue("iframeDocGC.wasCollected");
|
| + finishJSTest();
|
| +}
|
| +
|
| window.onmessage = function(evt) {
|
| iframeDocGC = internals.observeGC(document.querySelector('iframe').contentDocument);
|
| document.querySelector('iframe').remove();
|
| // The iframe is reachable via evt.source, and evt is on the
|
| - // stack. asyncGC() will invoke the callback once back at
|
| - // the event loop (and after having forced a GC); evt
|
| - // will consequently no longer be in scope and the iframe
|
| - // will have been GCed.
|
| - asyncGC(function () {
|
| - shouldBeTrue("iframeDocGC.wasCollected");
|
| - finishJSTest();
|
| - });
|
| + // stack. Force a GC upon return from the event handler, so
|
| + // that it no longer will be in scope and the iframe can
|
| + // be GCed.
|
| + setTimeout(runGCAndTest, 0);
|
| }
|
| </script>
|
| <iframe src="resources/message-port-gc-closed-iframe.html"></iframe>
|
|
|