blob: 0fcdabd2207f2f63c2e3803cb80818e5ee1a2c4c [file] [log] [blame]
<!doctype html>
<title>Async Script Execution Order (wrt possibly deferred Synchronous Script)</title>
<html>
<head>
<meta charset="utf-8">
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<pre id="scriptlog"></pre>
<script>
setup({single_test: true});
function log(msg) {
document.getElementById("scriptlog").textContent += msg + ";";
}
function checkIfReachedBodyEnd() {
const endelement = document.getElementById("bodyend");
if (endelement && endelement.textContent === "End") {
log("EndOfBody");
endelement.textContent = "Detected";
}
}
function logScript(msg) {
checkIfReachedBodyEnd();
log(msg);
}
function finish() {
const actual = document.getElementById("scriptlog").textContent;
const normal = "Inline1;Sync1;EndOfBody;DOMContentLoaded;Async1;";
<!-- Force defer order would be: "EndOfBody;Inline1;Sync1;DOMContentLoaded;Async1;" -->
assert_equals(actual, normal, "Normal script execution order comparison");
done();
}
logScript("Inline1");
window.addEventListener("load", finish);
document.addEventListener("DOMContentLoaded", function() { logScript("DOMContentLoaded"); });
</script>
<script src="resources/sync-script-1.js"></script>
<script src="resources/async-script-1.js" async></script>
<pre id="bodyend">End</pre>
</body>
</html>