Index: third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-1.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-1.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-1.html |
index a9556b1a29e2b0a5e18d31b827dca40c6a42f059..efdf5879fce9935d76a91bdd62e2accb23c89dc7 100644 |
--- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-1.html |
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-1.html |
@@ -1,22 +1,33 @@ |
-<!-- |
-This test case caught a crash bug in Chrome, due to a logic bug in the spec when |
-a second <script> element tried to load a previously-failed module. As such, the |
-test passes as long as nothing crashes. |
+<!DOCTYPE html> |
+<title>Handling of instantiation errors, 1</title> |
-See https://github.com/whatwg/html/pull/2559 for background. |
---> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script> |
+ setup({allow_uncaught_exception: true}); |
-<!DOCTYPE html> |
-<html> |
-<head> |
- <title>html-script-module-instantiation-error-1</title> |
- <script src="/resources/testharness.js"></script> |
- <script src="/resources/testharnessreport.js"></script> |
-</head> |
-<body> |
- <h1>html-script-module-instantiation-error-1</h1> |
- <script> setup({allow_uncaught_exception: true}) </script> |
- <script type="module" src="./instantiation-error-1.js"></script> |
- <script type="module" src="./instantiation-error-1.js"></script> |
-</body> |
-</html> |
+ window.log = []; |
+ |
+ window.addEventListener("error", ev => log.push(ev.error)); |
+ |
+ const test_load = async_test( |
+ "Test that missing exports lead to SyntaxError events on window and " + |
+ "load events on script, and that exceptions are remembered"); |
+ window.addEventListener("load", test_load.step_func_done(ev => { |
+ const exn = log[0]; |
+ assert_array_equals(log, [exn, 1, exn, 2, exn, 3, exn, 4, exn, 5]); |
+ assert_equals(exn.constructor, SyntaxError); |
+ })); |
+ |
+ function unreachable() { log.push("unexpected"); } |
+</script> |
+<script type="module" src="./missing-export.js" |
+ onerror="unreachable()" onload="log.push(1)"></script> |
+<script type="module" src="./missing-export.js" |
+ onerror="unreachable()" onload="log.push(2)"></script> |
+<script type="module" src="./missing-export-nested.js" |
+ onerror="unreachable()" onload="log.push(3)"></script> |
+<script type="module" src="./missing-export.js" |
+ onerror="unreachable()" onload="log.push(4)"></script> |
+<script type="module" src="./missing-export-nested.js" |
+ onerror="unreachable()" onload="log.push(5)"></script> |