summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html')
-rw-r--r--testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html27
1 files changed, 27 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html
new file mode 100644
index 0000000000..080b170233
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-8.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<title>Handling of instantiation errors, 8</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<!-- The below module tree should fail to instantiate, since it references undefined identifier. -->
+<script type="module" src="instantiation-error-1.js"></script>
+<script>
+setup({allow_uncaught_exception: true});
+
+promise_test(t => {
+ return new Promise(resolve => {
+ window.addEventListener("error", e => {
+ assert_equals(e.error.constructor, SyntaxError);
+ resolve();
+ }, { once: true });
+ }).then(() => new Promise(resolve => {
+ window.addEventListener("error", e => {
+ assert_equals(e.error.constructor, SyntaxError);
+ resolve();
+ }, { once: true });
+ // Load another module tree w/ previously instantiate-failed tree as its sub-tree.
+ document.head.appendChild(Object.assign(
+ document.createElement('script'),
+ { type: 'module', innerText: 'import "./instantiation-error-1.js"'}));
+ }));
+}, "Instantiate attempt on a tree w/ previously instantiate-failed tree as a sub-tree shouldn't crash.");
+</script>