blob: c54defc00df6b4e210f07333e20034bd5fe70cf9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Removing an async script before execution</title>
<meta name="timeout" content="long">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta description="This test ensures that an async script still executes if it is removed from a markup before the download is complete. The other two scripts that come after it in insertion order should execute as well." />
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="https://html.spec.whatwg.org/multipage/#execute-the-script-block"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script type="text/javascript">
var t = async_test("Removing an async script before execution");
function timeout()
{
t.step(function(){ assert_equals(document.getElementById("testresult").innerHTML, "4123")});
t.done();
}
var timer = setTimeout(timeout, 8000);
function log(text)
{
var textNode = document.createTextNode(text);
document.getElementById("testresult").appendChild(textNode);
}
</script>
</head>
<body>
<div id=log></div>
<span id="testresult"></span>
<script type="text/javascript">
var s1 = document.createElement("script");
s1.src="log.py?sec=2&id=1";
s1.async = false;
document.body.appendChild(s1);
var s2 = document.createElement("script");
s2.src="log.py?sec=1&id=2";
s2.async = false;
document.body.appendChild(s2);
var s3 = document.createElement("script");
s3.id = "s3";
s3.src="log.py?sec=0&id=3";
s3.async = false;
document.body.appendChild(s3);
//Remove s1 (Should still execute)
document.body.removeChild(s1);
</script>
<script type="text/javascript">log('4');</script>
</body>
</html>