<!DOCTYPE html>
<html>
  <head>
    <title>XMLHttpRequest: open() sync request not allowed if responseType is set</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::ol[1]/li[10]" />

  </head>
  <body>
    <div id="log"></div>
    <script>
      // Note: the case of calling synchronous open() first, and then setting
      // responseType, is tested in responsetype.html.
      function request(type) {
        test(function() {
          var client = new XMLHttpRequest()
          client.onreadystatechange = this.step_func(function(){
            assert_unreached('No events should fire here')
          })
          client.responseType = type
          assert_throws_dom("InvalidAccessError", function() { client.open('GET', "...", false) })
        }, document.title + " (" + type + ")")
      }
      request("arraybuffer")
      request("blob")
      request("json")
      request("text")
      request("document")
    </script>
  </body>
</html>
