<!--
var results = [];
try {
  self.onconnect = 1;
  results.push(String(onconnect));
} catch(e) {
  results.push(''+e);
}
try {
  self.onconnect = {handleEvent:function(){}};
  results.push(String(onconnect));
} catch(e) {
  results.push(''+e);
}
var f = function(e) {
  results.push(e.data);
  e.ports[0].postMessage(results);
};
onconnect = f;
results.push(typeof onconnect);
/*
-->
<!doctype html>
<title>onconnect</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
async_test(function() {
  var w1 = new SharedWorker('#', '');
  w1.port.addEventListener('message', this.step_func(function(e) {
    assert_array_equals(e.data, ['null', 'null', 'function', '']);
  }), false);
  w1.port.start();
});
</script>
<!--
*/
//-->
