| <!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> |