summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webmessaging/message-channels/worker-post-after-close.any.js
blob: 2de0c434de2e28689ab3ae7e7719a368f17ed522 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
async_test(t => {
  function workerCode() {
    onmessage = function(e) {
      close();
      var mc = new MessageChannel();
      mc.port1.onmessage = function() {
        postMessage("message received!");
      }
      mc.port2.postMessage(42);
      postMessage("done");
    }
  }

  var workerBlob = new Blob([workerCode.toString() + ";workerCode();"], {type:"application/javascript"});

  var w = new Worker(URL.createObjectURL(workerBlob));
  w.postMessage('');
  w.onmessage = function(e) {
    if (e.data == "done") {
      setTimeout(function() {
        t.done();
      }, 250);
    } else {
      assert_true(false, "A wrong message has been received!");
    }
  }
}, 'MessageChannel/MessagePort should not work after a worker self.close()');