<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: timeout during sync send() should not run</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method"/>
  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test(),
          hasrun = false
      test.step(function() {
        client = new XMLHttpRequest()
        client.open("GET", "folder.txt", false)
        test.step_timeout(() => { hasrun = true }, 0)
        client.onreadystatechange = function() {
          test.step(function() {
            assert_equals(client.readyState, 4)
            assert_false(hasrun)
          })
        }
        client.send(null)
        test.done()
      })
    </script>
  </body>
</html>
