<!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("InvalidAccessError", function() { client.open('GET', "...", false) })
        }, document.title + " (" + type + ")")
      }
      request("arraybuffer")
      request("blob")
      request("json")
      request("text")
      request("document")
    </script>
  </body>
</html>
