<html> | |
<body> | |
<p>Test postMessage and garbage collection.</p> | |
<div id=result></div> | |
<script> | |
if (window.testRunner) { | |
testRunner.dumpAsText(); | |
testRunner.waitUntilDone(); | |
} | |
var worker = new Worker('resources/messageport-echo-worker.js'); | |
worker.onmessage = (event) => { | |
if (event.data !== "ready") { | |
document.body.innerHTML = "FAIL"; | |
if (window.testRunner) | |
testRunner.notifyDone(); | |
return; | |
} | |
worker.terminate(); | |
function gcRec(n) { | |
if (n < 1) | |
return {}; | |
var temp = {i: "ab" + i + (i / 100000)}; | |
temp += "foo"; | |
gcRec(n-1); | |
} | |
for (var i = 0; i < 100000; i++) | |
gcRec(10); | |
setTimeout(() => { | |
document.body.innerHTML = "PASS"; | |
if (window.testRunner) | |
testRunner.notifyDone(); | |
}, 0); | |
} | |
var channel = new MessageChannel(); | |
channel.port1.onmessage = (event) => { }; | |
worker.postMessage("Here is your port", [channel.port2]); | |
</script> | |
</body> | |
</html> |