<!--
try {
  postMessage(false, [null]);
} catch(e) {
  postMessage(e instanceof TypeError);
}
/*
-->
<!doctype html>
<title>Using [null] in postMessage's second argument</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
(async_test()).step(function() {
  var worker = new Worker('#');
  worker.onmessage = this.step_func(function(e) {
    assert_true(e.data);
    this.done();
  });
});
</script>
<!--
*/
//-->

