<body>
<p>Test whether opening and closing a messageport in the same microtask correctly discards an in-flight message.</p>
<p>Should be a START message, followed with DONE.</p>
<pre id=log></pre>
<script>
function log(message)
{
document.getElementById("log").innerHTML += message + "<br>";
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
log("START");
var channel = new MessageChannel;
channel.port2.postMessage("This message can't be received");
openThenClose();
done();
function openThenClose() {
setTimeout(function() {
channel.port1.onmessage = function(evt) {
log("Closed port receiving: FAIL. Got Message: " + evt.data + " after close");
}
channel.port1.close();
}, 0);
}
function done() {
// Wait a short period of time to ensure no messages come in from previous tests.
setTimeout(function() {
log("DONE");
if (window.testRunner)
testRunner.notifyDone();
}, 100);
}
</script>
</body>