<!--
var channel = new MessageChannel();
var i = 0;
onconnect = function(e) {
  i++;
  e.ports[0].postMessage(1, [channel['port' + i]]);
}

/*
-->
<!doctype html>
<title>messagechannel in shared worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe src=008-1.html></iframe>
<script>
var t = async_test();
onload = t.step_func(function() {
  var w1 = new SharedWorker('#');
  w1.port.onmessage = this.step_func(function(e) {
    e.ports[0].onmessage = this.step_func(function(e) {
      assert_equals(e.data, 2);
      this.done();
    });
  });
});
</script>
<!--
*/
//-->
