<!DOCTYPE html>
<script src="../../../resources/js-test-pre.js"></script>
<script>

jsTestIsAsync = true;

description('Test usage of document.currentScript with async')

var seenIds = [];

function logCurrentScript(id) {
    // Don't print anything if pass since the execution order of script[async]
    // is non deterministic.
    if (id !== document.currentScript.id)
        shouldBeEqualToString('document.currentScript.id', id);

    seenIds.push(document.currentScript.id);
    seenIds.sort();
    if (seenIds.join('') === expectedIds)
        finishJSTest();
}

var expectedIds = 'abcdef';

</script>
<script id="a">
logCurrentScript('a');
</script>
<script id="b" async src="resources/log-current-script-b.js"></script>
<script id="c">
logCurrentScript('c');
</script>
<script id="d" async src="resources/log-current-script-d.js"></script>

<script id="e">
logCurrentScript('e');

var script = document.createElement('script');
script.id = 'f'
script.async = true;
script.defer = false;
script.src = 'resources/log-current-script-f.js';
document.head.appendChild(script);
</script>

<script src="../../../resources/js-test-post.js"></script>
</body>
</html>

