diff options
Diffstat (limited to 'testing/web-platform/tests/import-maps/not-as-classic-script.html')
-rw-r--r-- | testing/web-platform/tests/import-maps/not-as-classic-script.html | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/web-platform/tests/import-maps/not-as-classic-script.html b/testing/web-platform/tests/import-maps/not-as-classic-script.html new file mode 100644 index 0000000000..5f97394e44 --- /dev/null +++ b/testing/web-platform/tests/import-maps/not-as-classic-script.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +setup({allow_uncaught_exception : true}); + +const t_parse = async_test("Import maps shouldn't be parsed as scripts"); +const t_evaluate = async_test("Import maps shouldn't be executed as scripts"); +const t_external = async_test( + "External import maps shouldn't be executed as scripts"); + +const errorHandler = event => { + event.preventDefault(); + t_parse.unreached_func("An import map is parsed as a classic script")(); +}; + +window.addEventListener("error", errorHandler, {once: true}); +</script> + +<!-- This import map causes a parse error when parsed as a classic script. --> +<script type="importmap"> +{ + "imports": { + } +} +</script> + +<script> +// Remove error handler, because the following import map can causes parse +// error. +window.removeEventListener("error", errorHandler); +</script> + +<script type="importmap"> +t_evaluate.unreached_func("An import map is evaluated")(); +</script> + +<script type="importmap" src="data:text/javascript,t_external.unreached_func('An external import map is evaluated')();"></script> + +<script> +t_parse.done(); +t_evaluate.done(); +t_external.done(); +</script> |