| <html> |
| <head> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function log(msg) { |
| document.getElementById("log").innerHTML += msg; |
| } |
| </script> |
| </head> |
| <body> |
| <div> |
| <p> |
| Test that a synchronous script tag is executed in the right order, even if it's |
| removed from the document before it was loaded. |
| </p> |
| <p> |
| This test passes if the number "4123" is displayed below. |
| </p> |
| </div> |
| <div id="log"></div> |
| <script> |
| // All these scripts should be executed after the next script tag. |
| var s1 = document.createElement("script"); |
| s1.src = "resources/delayed-log.php?delay=3&msg=1"; |
| s1.async = false; |
| document.body.appendChild(s1); |
| |
| var s2 = document.createElement("script"); |
| s2.src = "resources/delayed-log.php?delay=2&msg=2"; |
| s2.async = false; |
| document.body.appendChild(s2); |
| |
| var s3 = document.createElement("script"); |
| s3.src = "resources/delayed-log.php?delay=1&msg=3&done=1"; |
| s3.async = false; |
| document.body.appendChild(s3); |
| |
| // s1 should still execute, and it should execute before s2 and s3. |
| document.body.removeChild(s1); |
| </script> |
| <script>log("4");</script> |
| </body> |
| </html> |