worker-post-after-close.any.js (756B)
1 async_test(t => { 2 function workerCode() { 3 onmessage = function(e) { 4 close(); 5 var mc = new MessageChannel(); 6 mc.port1.onmessage = function() { 7 postMessage("message received!"); 8 } 9 mc.port2.postMessage(42); 10 postMessage("done"); 11 } 12 } 13 14 var workerBlob = new Blob([workerCode.toString() + ";workerCode();"], {type:"application/javascript"}); 15 16 var w = new Worker(URL.createObjectURL(workerBlob)); 17 w.postMessage(''); 18 w.onmessage = function(e) { 19 if (e.data == "done") { 20 setTimeout(function() { 21 t.done(); 22 }, 250); 23 } else { 24 assert_true(false, "A wrong message has been received!"); 25 } 26 } 27 }, 'MessageChannel/MessagePort should not work after a worker self.close()');