| Index: third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/execorder.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/execorder.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/execorder.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..3f28267298b5198d148bd27145ab7a68435727b6
 | 
| --- /dev/null
 | 
| +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/execorder.html
 | 
| @@ -0,0 +1,105 @@
 | 
| +<!doctype html>
 | 
| +<html>
 | 
| +<head>
 | 
| +    <title>html-script-module-execOrder</title>
 | 
| +    <script src="/resources/testharness.js"></script>
 | 
| +    <script src="/resources/testharnessreport.js"></script>
 | 
| +    <script>
 | 
| +
 | 
| +        var execCounts = [
 | 
| +            0, // test_parsedOrdered
 | 
| +            0, // test_dynamicOrdered
 | 
| +        ];
 | 
| +        function assert_execCount(set, expected, description)
 | 
| +        {
 | 
| +            if (!execCounts[set])
 | 
| +            {
 | 
| +                execCounts[set] = 0;
 | 
| +            }
 | 
| +            assert_equals(++execCounts[set], expected, description);
 | 
| +        }
 | 
| +
 | 
| +        function create_script(src, opts)
 | 
| +        {
 | 
| +            var element = document.createElement("script");
 | 
| +            element.src = src;
 | 
| +            element.async = (opts.asyncOrdered ? false : true);
 | 
| +            element.type = (opts.module ? "module" : "text/javascript");
 | 
| +            document.body.appendChild(element);
 | 
| +        }
 | 
| +
 | 
| +    </script>
 | 
| +</head>
 | 
| +<body>
 | 
| +    <h1>html-script-module-execOrder</h1>
 | 
| +    <script>
 | 
| +
 | 
| +        /////
 | 
| +        // Start test_parsedUnordered*
 | 
| +        /////
 | 
| +        var test_parsedUnordered1 = async_test("Unordered module script execution (parsed, unordered #1)");
 | 
| +        var test_parsedUnordered2 = async_test("Unordered module script execution (parsed, unordered #2)");
 | 
| +    </script>
 | 
| +    <script type="module" src="execOrder-parsedUnordered1.js"></script>
 | 
| +    <script type="module" src="execOrder-parsedUnordered2.js"></script>
 | 
| +    <script>
 | 
| +        /////
 | 
| +        // End test_parsedUnordered*
 | 
| +        /////
 | 
| +
 | 
| +        /////
 | 
| +        // Start test_dynamicUnordered*
 | 
| +        /////
 | 
| +        var test_dynamicUnordered1 = async_test("Unordered module script execution (dynamic, unordered #1)");
 | 
| +        var test_dynamicUnordered2 = async_test("Unordered module script execution (dynamic, unordered #2)");
 | 
| +        create_script("execOrder-dynamicUnordered1.js", { module: true });
 | 
| +        create_script("execOrder-dynamicUnordered2.js", { module: true });
 | 
| +        /////
 | 
| +        // End test_dynamicUnordered*
 | 
| +        /////
 | 
| +
 | 
| +        /////
 | 
| +        // Begin test_parsedOrdered
 | 
| +        /////
 | 
| +        var test_parsedOrdered = async_test("Interlaced module/non-module script execution (parsed, async-ordered)");
 | 
| +        window.addEventListener("load", test_parsedOrdered.step_func(function() {
 | 
| +            assert_execCount(0, 5, "onload should have fired fifth");
 | 
| +            test_parsedOrdered.done();
 | 
| +        }));
 | 
| +    </script>
 | 
| +    <script src="execOrder-parsedOrdered2.js" defer></script>
 | 
| +    <script type="module">
 | 
| +        test_parsedOrdered.step(function() {
 | 
| +            assert_execCount(0, 3, "Inline module-typed script element should have fired third");
 | 
| +        });
 | 
| +    </script>
 | 
| +    <script src="execOrder-parsedOrdered4.js" defer></script>
 | 
| +    <script>
 | 
| +        test_parsedOrdered.step(function() {
 | 
| +            assert_execCount(0, 1, "Inline untyped script element should have fired first");
 | 
| +        });
 | 
| +        /////
 | 
| +        // End test_parsedOrdered
 | 
| +        /////
 | 
| +
 | 
| +        /////
 | 
| +        // Start test_dynamicOrdered
 | 
| +        /////
 | 
| +        var test_dynamicOrdered = async_test("Interlaced module/non-module script execution (dynamic, async-ordered)");
 | 
| +        window.addEventListener("load", test_dynamicOrdered.step_func(function() {
 | 
| +            assert_execCount(1, 5, "onload should have fired fifth (last)");
 | 
| +            test_dynamicOrdered.done();
 | 
| +        }));
 | 
| +        create_script("execOrder-dynamicOrdered2.js", { asyncOrdered: true, module: false });
 | 
| +        create_script("execOrder-dynamicOrdered3.js", { asyncOrdered: true, module: true });
 | 
| +        create_script("execOrder-dynamicOrdered4.js", { asyncOrdered: true, module: false });
 | 
| +        test_dynamicOrdered.step(function() {
 | 
| +            assert_execCount(1, 1, "Inline untyped script element should have fired first");
 | 
| +        });
 | 
| +        /////
 | 
| +        // End test_dynamicOrdered
 | 
| +        /////
 | 
| +
 | 
| +    </script>
 | 
| +</body>
 | 
| +</html>
 | 
| 
 |