<!DOCTYPE html>
<html><head>
	<title> scheduler: adding defer attribute at runtime</title>
	<script src="/resources/testharness.js"></script>
	<script src="/resources/testharnessreport.js"></script>
	<script src="testlib/testlib.js"></script>
</head>
<body>

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

        <script id="defer-script" src="scripts/include-1.js"></script> 
        <script src="scripts/include-2.js"></script>

	<script>
          var t = async_test();

          t.step(function() {
            document.getElementById("defer-script").setAttribute("defer", "defer");
          });

          var ran_defer_check = false;

          document.addEventListener("readystatechange", t.step_func(function () {
            if (document.readyState == "interactive") {
              ran_defer_check = true;
              assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
            }
          }), false);

          addEventListener("load", t.step_func(function () {
            assert_true(ran_defer_check);
            assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
            t.done();
          }), false);
          
        </script>
</body></html>
