<!--
var xhr = new XMLHttpRequest();
var log = '';
xhr.open('GET', '001-1.xml', false);
xhr.send();
if (xhr.responseXML != null)
  log += 'responseXML was not null. ';
if (xhr.responseText != '<x>foo</x>')
  log += 'responseText was ' + this.responseText + ', expected <x>foo</x>. ';
postMessage(log);

/*
-->
<!doctype html>
<title>sync XMLHttpRequest in dedicated worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
var t = async_test();
function runtest() {
  var worker = new Worker('#');
  worker.onmessage = this.step_func(function(e) {
    assert_equals(e.data, '');
    this.done();
  });
}
</script>
<iframe src=001-1.xml onload="t.step(runtest);"></iframe>
<!--
*/
//-->