<!DOCTYPE html>
<html><head>
        <title> scheduler: is a script with syntax error marked as "has run"? </title>
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <script src="testlib/testlib.js"></script>
        <script>setup({allow_uncaught_exception:true})
        var t = async_test()
        </script>
        <script>
                log(This script will never run..
        </script>
</head>
<body>

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

        <script>t.step(function() {
                          log('inline script #1');
                          var script=document.getElementsByTagName('script')[3].cloneNode(true);
                          script.removeChild(script.firstChild);
                          script.appendChild(document.createTextNode( 'log("cloned script");' ));
                          document.body.appendChild( script );
                          log('end script #1');
                      })
        </script>
        <script type="text/javascript">
        t.step(function() {
                   log( 'inline script #2' );
               });
        function test() {
                assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
                t.done();
        }
        onload = t.step_func(test);
</script>

</body></html>
