<!--
postMessage(1);
/*
-->
<!doctype html>
<title>creating 3 sibling dedicated workers</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
async_test(function(t) {
  var w1 = new Worker('#');
  var w2 = new Worker('#');
  var w3 = new Worker('#');
  var got = [false, false, false];
  var check_done = t.step_func(function() {
                       if (got.every(function(x) {return x})) {
                           t.done();
                       }
                   });
  w1.onmessage = t.step_func(function(e) {got[0] = true; check_done()});
  w2.onmessage = t.step_func(function(e) {got[1] = true; check_done()});
  w3.onmessage = t.step_func(function(e) {got[2] = true; check_done()});
});
</script>
<!--
*/
//-->
