<!DOCTYPE html>
<html><head>
        <title> scheduler: force-async off on non-parser-inserted script</title>
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <script src="testlib/testlib.js"></script>
</head>
<body>

        <div id="log">FAILED (This TC requires JavaScript enabled)</div>

        <script>
          var t = async_test();

          sources = ["scripts/include-1.js?pipe=trickle(d2)", "scripts/include-2.js?pipe=trickle(d1)"];
          sources.forEach(function(x) {
            var script = document.createElement("script");
            script.src = x;
            t.step(function() {assert_equals(script.async, true, "async IDL attribute on script creation")});
            script.async = false;
            t.step(function() {assert_equals(script.async, false, "async IDL attribute after setting")});
            t.step(function() {assert_equals(script.getAttribute("async"), null, "async content attribute after setting")});
            document.head.appendChild(script);
          });

          onload = t.step_func(function() {
            assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
            t.done();
          });
        </script>
</body></html>
