Bug 1621542 [wpt PR 22181] - [Import Maps] Drop WPTs for fallback/built-in modules support, a=testonly
authorHiroshige Hayashizaki <hiroshige@chromium.org>
Thu, 12 Mar 2020 15:12:27 +0000
changeset 518650 1b01eabe48b1cd15af00df5c931e6b97d95658ae
parent 518649 e6da950e2567bef26862eda14b47ba3eb35c729d
child 518651 94c2c014b6b57bfd6c5b89000c78564c653f60c1
push id37213
push usershindli@mozilla.com
push dateFri, 13 Mar 2020 21:46:16 +0000
treeherdermozilla-central@8ef0a54d7715 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1621542, 22181, 829084, 848607, 2094383, 749562
milestone76.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1621542 [wpt PR 22181] - [Import Maps] Drop WPTs for fallback/built-in modules support, a=testonly Automatic update from web-platform-tests [Import Maps] Drop WPTs for fallback/built-in modules support Bug: 829084, 848607 Change-Id: I903141366d7fbda98f795840264f1c58c911d230 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094383 Reviewed-by: Domenic Denicola <domenic@chromium.org> Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org> Cr-Commit-Position: refs/heads/master@{#749562} -- wpt-commits: ea40adf0b1c61c91499724d45c6995d29ecbb816 wpt-pr: 22181
testing/web-platform/tests/import-maps/builtin-support.tentative/@std/__dir__.headers
testing/web-platform/tests/import-maps/builtin-support.tentative/@std/blank
testing/web-platform/tests/import-maps/builtin-support.tentative/@std/none
testing/web-platform/tests/import-maps/builtin-support.tentative/bare.sub.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/bare/__dir__.headers
testing/web-platform/tests/import-maps/builtin-support.tentative/bare/blank
testing/web-platform/tests/import-maps/builtin-support.tentative/bare/none
testing/web-platform/tests/import-maps/builtin-support.tentative/bare/std-blank
testing/web-platform/tests/import-maps/builtin-support.tentative/bare/std-none
testing/web-platform/tests/import-maps/builtin-support.tentative/builtin-empty.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/builtin-import-scheme.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/builtin.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/data.sub.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/fallback-disallowed.sub.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/fallback.sub.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/http.sub.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-addresses.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-schema.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-scope-keys.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-specifier-keys.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-builtins.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-not-yet-implemented.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-scopes.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving.tentative.html
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/helpers/parsing.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-addresses.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-schema.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-scope-keys.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-specifier-keys.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-builtins.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-not-yet-implemented.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-scopes.js
testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving.js
testing/web-platform/tests/import-maps/builtin-support.tentative/static-import.py
testing/web-platform/tests/import-maps/resources/jest-test-helper.js
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/@std/__dir__.headers
+++ /dev/null
@@ -1,1 +0,0 @@
-Content-Type: text/javascript
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/@std/blank
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:@std/blank");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/@std/none
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:@std/none");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare.sub.tentative.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<meta name="timeout" content="long">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-// "bare/..." (i.e. without leading "./") are bare specifiers
-// (not relative paths).
-//
-// Discussions about notations for builtin modules are ongoing, e.g.
-// https://github.com/tc39/proposal-javascript-standard-library/issues/12
-// Currently the tests expects two notations are accepted.
-// TODO: Once the discussions converge, update the tests.
-const importMap = `
-{
-  "imports": {
-    "bare/std-blank": "std:blank",
-    "bare/blank": "@std/blank",
-    "bare/std-none": "std:none",
-    "bare/none": "@std/none"
-  }
-}
-`;
-
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Currently, Chromium's implementation resolves import maps as a part of
-  // specifier resolution, and thus failure in import map resolution causes
-  // a parse error, not fetch error. Therefore, we use Result.PARSE_ERROR
-  // below. https://crbug.com/928435
-
-  // Bare to built-in.
-  "bare/std-blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "bare/blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "bare/std-none":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-  "bare/none":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-};
-
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare/__dir__.headers
+++ /dev/null
@@ -1,1 +0,0 @@
-Content-Type: text/javascript
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare/blank
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:bare/blank");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare/none
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:bare/none");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare/std-blank
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:bare/std-blank");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/bare/std-none
+++ /dev/null
@@ -1,1 +0,0 @@
-log.push("relative:bare/std-none");
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/builtin-empty.tentative.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-const importMap = `
-{
-  "imports": {
-    "../resources/log.js?pipe=sub&name=empty": [ "@std/" ],
-    "../resources/log.js?pipe=sub&name=empty-fallback": [
-      "@std/",
-      "../resources/log.js?pipe=sub&name=empty-fallback"
-    ]
-  }
-}
-`;
-
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Discussions about notations are ongoing, e.g.
-  // https://github.com/tc39/proposal-javascript-standard-library/issues/12
-  // Currently the tests expects two notations are accepted.
-  // TODO: Once the discussions converge, update this and related tests.
-  "std:":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-  "@std/":
-    [Result.FETCH_ERROR, Result.PARSE_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-
-  "../resources/log.js?pipe=sub&name=empty":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-  "../resources/log.js?pipe=sub&name=empty-fallback":
-    [Result.URL, Result.URL, Result.URL, Result.URL],
-};
-
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/builtin-import-scheme.tentative.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Currently direct use of import: URLs are disabled.
-  "import:std:blank":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-  "import:@std/blank":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-  "import:std:none":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-  "import:@std/none":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-};
-
-doTests(null, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/builtin.tentative.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Discussions about notations are ongoing, e.g.
-  // https://github.com/tc39/proposal-javascript-standard-library/issues/12
-  // Currently the tests expects two notations are accepted.
-  // TODO: Once the discussions converge, update this and related tests.
-  "std:blank":
-    [Result.BUILTIN, Result.FETCH_ERROR, Result.BUILTIN, Result.BUILTIN],
-  "@std/blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "std:none":
-    [Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR, Result.FETCH_ERROR],
-  "@std/none":
-    [Result.URL, Result.URL, Result.FETCH_ERROR, Result.FETCH_ERROR],
-};
-
-doTests(null, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/data.sub.tentative.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<meta name="timeout" content="long">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-// "bare/..." (i.e. without leading "./") are bare specifiers
-// (not relative paths).
-//
-// Discussions about notations for builtin modules are ongoing, e.g.
-// https://github.com/tc39/proposal-javascript-standard-library/issues/12
-// Currently the tests expects two notations are accepted.
-// TODO: Once the discussions converge, update the tests.
-const importMap = `
-{
-  "imports": {
-    "data:text/javascript,log.push('data:std-blank')": "std:blank",
-    "data:text/javascript,log.push('data:blank')": "@std/blank",
-    "data:text/javascript,log.push('data:std-none')": "std:none",
-    "data:text/javascript,log.push('data:none')": "@std/none"
-  }
-}
-`;
-
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Currently, Chromium's implementation resolves import maps as a part of
-  // specifier resolution, and thus failure in import map resolution causes
-  // a parse error, not fetch error. Therefore, we use Result.PARSE_ERROR
-  // below. https://crbug.com/928435
-
-  // data: to built-in.
-  "data:text/javascript,log.push('data:std-blank')":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "data:text/javascript,log.push('data:blank')":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "data:text/javascript,log.push('data:std-none')":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-  "data:text/javascript,log.push('data:none')":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-};
-
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/fallback-disallowed.sub.tentative.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<meta name="timeout" content="long">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-// Fallbacks from external URLs (such as HTTPS URLs) are
-// blocked by ongoing spec discussions, for example
-// https://github.com/WICG/import-maps/issues/76.
-// https://crbug.com/928435
-//
-// This test, as well as Chromium's implementation, rejects broader range of
-// fallbacks (not only those from HTTPS), to avoid potential spec and
-// interoperability issues.
-// The only allowed fallback pattern is fallbacks from bare specifiers with
-// two elements, which are listed in fallback.sub.tentative.html.
-const importMap = `
-{
-  "imports": {
-    "bare": "../resources/log.js?pipe=sub&name=bare",
-
-    "../resources/log.js?pipe=sub&name=http-to-builtin": [
-      "../resources/log.js?pipe=sub&name=http-to-builtin",
-      "@std/blank"
-    ],
-
-    "../resources/log.js?pipe=sub&name=fallback-to-different-url-1": [
-      "@std/blank",
-      "../resources/log.js?pipe=sub&name=something-different"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-to-different-url-2": [
-      "@std/none",
-      "../resources/log.js?pipe=sub&name=something-different2"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-to-different-origin-1": [
-      "@std/blank",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=fallback-to-different-origin-1"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-to-different-origin-2": [
-      "@std/none",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=fallback-to-different-origin-2"
-    ],
-
-    "../resources/log.js?pipe=sub&name=more-than-two-values-1": [
-      "@std/none",
-      "@std/blank",
-      "../resources/log.js?pipe=sub&name=more-than-two-values-1"
-    ],
-    "../resources/log.js?pipe=sub&name=more-than-two-values-2": [
-      "@std/none",
-      "../resources/log.js?pipe=sub&name=more-than-two-values-2",
-      "@std/blank"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-from-http": [
-      "../resources/log.js?pipe=sub&name=non-built-in",
-      "../resources/log.js?pipe=sub&name=fallback-from-http"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-from-data-1": [
-      "data:text/plain,",
-      "../resources/log.js?pipe=sub&name=fallback-from-http"
-    ],
-    "../resources/log.js?pipe=sub&name=fallback-from-data-2": [
-      "data:text/javascript,log.push('dataURL')",
-      "../resources/log.js?pipe=sub&name=fallback-from-http"
-    ]
-  }
-}
-`;
-const tests = {};
-for (const key in JSON.parse(importMap).imports) {
-  if (key === "bare") {
-    continue;
-  }
-  tests[key] =
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR];
-}
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/fallback.sub.tentative.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html>
-<meta name="timeout" content="long">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-// This tests is for fallbacks with the pattern of
-// `"https://some.external/url": ["@std/x", "https://some.external/url"]`
-// which maps "https://some.external/url" to "@std/x" if "@std/x" is
-// implemented, or leaves it unmodified otherwise.
-//
-// This is the primary use case where fallback should work.
-// Some other patterns of fallbacks are intentionally blocked due to ongoing
-// spec issues. See fallback-disallowed.sub.tentative.html.
-const importMap = `
-{
-  "imports": {
-    "../resources/log.js?pipe=sub&name=blank": [
-      "@std/blank",
-      "../resources/log.js?pipe=sub&name=blank"
-    ],
-    "../resources/log.js?pipe=sub&name=none": [
-      "@std/none",
-      "../resources/log.js?pipe=sub&name=none"
-    ],
-    "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-blank": [
-      "@std/blank",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-blank"
-    ],
-    "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-none": [
-      "@std/none",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-none"
-    ],
-
-    "../resources/log.js?pipe=sub&name=std-blank": [
-      "std:blank",
-      "../resources/log.js?pipe=sub&name=std-blank"
-    ],
-    "../resources/log.js?pipe=sub&name=std-none": [
-      "std:none",
-      "../resources/log.js?pipe=sub&name=std-none"
-    ],
-    "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-blank": [
-      "std:blank",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-blank"
-    ],
-    "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-none": [
-      "std:none",
-      "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-none"
-    ]
-
-  }
-}
-`;
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-  // Result.URL indicates that the specifier was not re-mapped by import maps,
-  // i.e. either considered as a relative path, or fallback occured.
-  "../resources/log.js?pipe=sub&name=blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "../resources/log.js?pipe=sub&name=none":
-    [Result.URL, Result.URL, Result.URL, Result.URL],
-  "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-none":
-    [Result.URL, Result.URL, Result.URL, Result.URL],
-
-  "../resources/log.js?pipe=sub&name=std-blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "../resources/log.js?pipe=sub&name=std-none":
-    [Result.URL, Result.URL, Result.URL, Result.URL],
-  "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=std-cross-origin-none":
-    [Result.URL, Result.URL, Result.URL, Result.URL],
-};
-
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/http.sub.tentative.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/test-helper.js"></script>
-
-<script>
-// "bare/..." (i.e. without leading "./") are bare specifiers
-// (not relative paths).
-//
-// Discussions about notations for builtin modules are ongoing, e.g.
-// https://github.com/tc39/proposal-javascript-standard-library/issues/12
-// Currently the tests expects two notations are accepted.
-// TODO: Once the discussions converge, update the tests.
-const importMap = `
-{
-  "imports": {
-    "../resources/log.js?pipe=sub&name=std-blank": "std:blank",
-    "../resources/log.js?pipe=sub&name=blank": "@std/blank",
-    "../resources/log.js?pipe=sub&name=std-none": "std:none",
-    "../resources/log.js?pipe=sub&name=none": "@std/none"
-  }
-}
-`;
-
-const tests = {
-  // Arrays of expected results for:
-  // - <script src type="module">,
-  // - <script src> (classic script),
-  // - static import, and
-  // - dynamic import.
-
-  // Currently, Chromium's implementation resolves import maps as a part of
-  // specifier resolution, and thus failure in import map resolution causes
-  // a parse error, not fetch error. Therefore, we use Result.PARSE_ERROR
-  // below. https://crbug.com/928435
-
-  // HTTP(S) to built-in.
-  "{{location[server]}}/import-maps/resources/log.js?pipe=sub&name=std-blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "{{location[server]}}/import-maps/resources/log.js?pipe=sub&name=blank":
-    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
-  "{{location[server]}}/import-maps/resources/log.js?pipe=sub&name=std-none":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-  "{{location[server]}}/import-maps/resources/log.js?pipe=sub&name=none":
-    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
-};
-
-doTests(importMap, null, tests);
-</script>
-<body>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-addresses.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-addresses.js
--->
-<script type="module" src="resources/parsing-addresses.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-schema.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-schema.js
--->
-<script type="module" src="resources/parsing-schema.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-scope-keys.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-scope-keys.js
--->
-<script type="module" src="resources/parsing-scope-keys.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/parsing-specifier-keys.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-specifier-keys.js
--->
-<script type="module" src="resources/parsing-specifier-keys.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-builtins.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/resolving-builtins.js
--->
-<script type="module" src="resources/resolving-builtins.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-not-yet-implemented.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/resolving-not-yet-implemented.js
--->
-<script type="module" src="resources/resolving-not-yet-implemented.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving-scopes.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/resolving-scopes.js
--->
-<script type="module" src="resources/resolving-scopes.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resolving.tentative.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/jest-test-helper.js"></script>
-<script type="module" src="resources/helpers/parsing.js"></script>
-
-<!--
-Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/resolving.js
--->
-<script type="module" src="resources/resolving.js"></script>
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/helpers/parsing.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-const { parseFromString } = require('../../lib/parser.js');
-
-// Local modifications from upstream:
-// Currently warnings and scopes are not checked in expectSpecifierMap().
-exports.expectSpecifierMap = (input, baseURL, output, warnings = []) => {
-  expect(parseFromString(`{ "imports": ${input} }`, baseURL))
-    .toEqual({ imports: output, scopes: {} });
-};
-
-exports.expectScopes = (inputArray, baseURL, outputArray, warnings = []) => {
-  const checkWarnings = testWarningHandler(warnings);
-
-  const inputScopesAsStrings = inputArray.map(scopePrefix => `${JSON.stringify(scopePrefix)}: {}`);
-  const inputString = `{ "scopes": { ${inputScopesAsStrings.join(', ')} } }`;
-
-  const outputScopesObject = {};
-  for (const outputScopePrefix of outputArray) {
-    outputScopesObject[outputScopePrefix] = {};
-  }
-
-  expect(parseFromString(inputString, baseURL)).toEqual({ imports: {}, scopes: outputScopesObject });
-
-  checkWarnings();
-};
-
-exports.expectBad = (input, baseURL, warnings = []) => {
-  const checkWarnings = testWarningHandler(warnings);
-  expect(parseFromString(input, baseURL)).toThrow('TypeError');
-  checkWarnings();
-};
-
-exports.expectWarnings = (input, baseURL, output, warnings = []) => {
-  const checkWarnings = testWarningHandler(warnings);
-  expect(parseFromString(input, baseURL)).toEqual(output);
-
-  checkWarnings();
-};
-
-function testWarningHandler(expectedWarnings) {
-  // We don't check warnings on WPT tests, because there are no
-  // ways to catch console warnings from JavaScript.
-  return () => {};
-}
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-addresses.js
+++ /dev/null
@@ -1,351 +0,0 @@
-'use strict';
-const { expectSpecifierMap } = require('./helpers/parsing.js');
-const { BUILT_IN_MODULE_SCHEME } = require('../lib/utils.js');
-
-describe('Relative URL-like addresses', () => {
-  it('should accept strings prefixed with ./, ../, or /', () => {
-    expectSpecifierMap(
-      `{
-        "dotSlash": "./foo",
-        "dotDotSlash": "../foo",
-        "slash": "/foo"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        dotSlash: [expect.toMatchURL('https://base.example/path1/path2/foo')],
-        dotDotSlash: [expect.toMatchURL('https://base.example/path1/foo')],
-        slash: [expect.toMatchURL('https://base.example/foo')]
-      }
-    );
-  });
-
-  it('should not accept strings prefixed with ./, ../, or / for data: base URLs', () => {
-    expectSpecifierMap(
-      `{
-        "dotSlash": "./foo",
-        "dotDotSlash": "../foo",
-        "slash": "/foo"
-      }`,
-      'data:text/html,test',
-      {
-        dotSlash: [],
-        dotDotSlash: [],
-        slash: []
-      },
-      [
-        `Invalid address "./foo" for the specifier key "dotSlash".`,
-        `Invalid address "../foo" for the specifier key "dotDotSlash".`,
-        `Invalid address "/foo" for the specifier key "slash".`
-      ]
-    );
-  });
-
-  it('should accept the literal strings ./, ../, or / with no suffix', () => {
-    expectSpecifierMap(
-      `{
-        "dotSlash": "./",
-        "dotDotSlash": "../",
-        "slash": "/"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        dotSlash: [expect.toMatchURL('https://base.example/path1/path2/')],
-        dotDotSlash: [expect.toMatchURL('https://base.example/path1/')],
-        slash: [expect.toMatchURL('https://base.example/')]
-      }
-    );
-  });
-
-  it('should ignore percent-encoded variants of ./, ../, or /', () => {
-    expectSpecifierMap(
-      `{
-        "dotSlash1": "%2E/",
-        "dotDotSlash1": "%2E%2E/",
-        "dotSlash2": ".%2F",
-        "dotDotSlash2": "..%2F",
-        "slash2": "%2F",
-        "dotSlash3": "%2E%2F",
-        "dotDotSlash3": "%2E%2E%2F"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        dotSlash1: [],
-        dotDotSlash1: [],
-        dotSlash2: [],
-        dotDotSlash2: [],
-        slash2: [],
-        dotSlash3: [],
-        dotDotSlash3: []
-      },
-      [
-        `Invalid address "%2E/" for the specifier key "dotSlash1".`,
-        `Invalid address "%2E%2E/" for the specifier key "dotDotSlash1".`,
-        `Invalid address ".%2F" for the specifier key "dotSlash2".`,
-        `Invalid address "..%2F" for the specifier key "dotDotSlash2".`,
-        `Invalid address "%2F" for the specifier key "slash2".`,
-        `Invalid address "%2E%2F" for the specifier key "dotSlash3".`,
-        `Invalid address "%2E%2E%2F" for the specifier key "dotDotSlash3".`
-      ]
-    );
-  });
-});
-
-describe('Built-in module addresses', () => {
-  it('should accept URLs using the built-in module scheme', () => {
-    expectSpecifierMap(
-      `{
-        "foo": "${BUILT_IN_MODULE_SCHEME}:foo"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        foo: [expect.toMatchURL(`${BUILT_IN_MODULE_SCHEME}:foo`)]
-      }
-    );
-  });
-
-  it('should ignore percent-encoded variants of the built-in module scheme', () => {
-    expectSpecifierMap(
-      `{
-        "foo": "${encodeURIComponent(BUILT_IN_MODULE_SCHEME + ':')}foo"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        foo: []
-      },
-      [`Invalid address "${encodeURIComponent(BUILT_IN_MODULE_SCHEME + ':')}foo" for the specifier key "foo".`]
-    );
-  });
-
-  it('should allow built-in module URLs that contain "/" or "\\"', () => {
-    expectSpecifierMap(
-      `{
-        "slashEnd": "${BUILT_IN_MODULE_SCHEME}:foo/",
-        "slashMiddle": "${BUILT_IN_MODULE_SCHEME}:foo/bar",
-        "backslash": "${BUILT_IN_MODULE_SCHEME}:foo\\\\baz"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        slashEnd: [expect.toMatchURL(`${BUILT_IN_MODULE_SCHEME}:foo/`)],
-        slashMiddle: [expect.toMatchURL(`${BUILT_IN_MODULE_SCHEME}:foo/bar`)],
-        backslash: [expect.toMatchURL(`${BUILT_IN_MODULE_SCHEME}:foo\\baz`)]
-      }
-    );
-  });
-});
-
-describe('Absolute URL addresses', () => {
-  it('should only accept absolute URL addresses with fetch schemes', () => {
-    expectSpecifierMap(
-      `{
-        "about": "about:good",
-        "blob": "blob:good",
-        "data": "data:good",
-        "file": "file:///good",
-        "filesystem": "filesystem:good",
-        "http": "http://good/",
-        "https": "https://good/",
-        "ftp": "ftp://good/",
-        "import": "import:bad",
-        "mailto": "mailto:bad",
-        "javascript": "javascript:bad",
-        "wss": "wss:bad"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        about: [expect.toMatchURL('about:good')],
-        blob: [expect.toMatchURL('blob:good')],
-        data: [expect.toMatchURL('data:good')],
-        file: [expect.toMatchURL('file:///good')],
-        filesystem: [expect.toMatchURL('filesystem:good')],
-        http: [expect.toMatchURL('http://good/')],
-        https: [expect.toMatchURL('https://good/')],
-        ftp: [expect.toMatchURL('ftp://good/')],
-        import: [],
-        mailto: [],
-        javascript: [],
-        wss: []
-      },
-      [
-        `Invalid address "import:bad" for the specifier key "import".`,
-        `Invalid address "mailto:bad" for the specifier key "mailto".`,
-        `Invalid address "javascript:bad" for the specifier key "javascript".`,
-        `Invalid address "wss:bad" for the specifier key "wss".`
-      ]
-    );
-  });
-
-  it('should only accept absolute URL addresses with fetch schemes inside arrays', () => {
-    expectSpecifierMap(
-      `{
-        "about": ["about:good"],
-        "blob": ["blob:good"],
-        "data": ["data:good"],
-        "file": ["file:///good"],
-        "filesystem": ["filesystem:good"],
-        "http": ["http://good/"],
-        "https": ["https://good/"],
-        "ftp": ["ftp://good/"],
-        "import": ["import:bad"],
-        "mailto": ["mailto:bad"],
-        "javascript": ["javascript:bad"],
-        "wss": ["wss:bad"]
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        about: [expect.toMatchURL('about:good')],
-        blob: [expect.toMatchURL('blob:good')],
-        data: [expect.toMatchURL('data:good')],
-        file: [expect.toMatchURL('file:///good')],
-        filesystem: [expect.toMatchURL('filesystem:good')],
-        http: [expect.toMatchURL('http://good/')],
-        https: [expect.toMatchURL('https://good/')],
-        ftp: [expect.toMatchURL('ftp://good/')],
-        import: [],
-        mailto: [],
-        javascript: [],
-        wss: []
-      },
-      [
-        `Invalid address "import:bad" for the specifier key "import".`,
-        `Invalid address "mailto:bad" for the specifier key "mailto".`,
-        `Invalid address "javascript:bad" for the specifier key "javascript".`,
-        `Invalid address "wss:bad" for the specifier key "wss".`
-      ]
-    );
-  });
-
-  it('should parse absolute URLs, ignoring unparseable ones', () => {
-    expectSpecifierMap(
-      `{
-        "unparseable1": "https://ex ample.org/",
-        "unparseable2": "https://example.com:demo",
-        "unparseable3": "http://[www.example.com]/",
-        "invalidButParseable1": "https:example.org",
-        "invalidButParseable2": "https://///example.com///",
-        "prettyNormal": "https://example.net",
-        "percentDecoding": "https://ex%41mple.com/",
-        "noPercentDecoding": "https://example.com/%41"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        unparseable1: [],
-        unparseable2: [],
-        unparseable3: [],
-        invalidButParseable1: [expect.toMatchURL('https://example.org/')],
-        invalidButParseable2: [expect.toMatchURL('https://example.com///')],
-        prettyNormal: [expect.toMatchURL('https://example.net/')],
-        percentDecoding: [expect.toMatchURL('https://example.com/')],
-        noPercentDecoding: [expect.toMatchURL('https://example.com/%41')]
-      },
-      [
-        `Invalid address "https://ex ample.org/" for the specifier key "unparseable1".`,
-        `Invalid address "https://example.com:demo" for the specifier key "unparseable2".`,
-        `Invalid address "http://[www.example.com]/" for the specifier key "unparseable3".`
-      ]
-    );
-  });
-
-  it('should parse absolute URLs, ignoring unparseable ones inside arrays', () => {
-    expectSpecifierMap(
-      `{
-        "unparseable1": ["https://ex ample.org/"],
-        "unparseable2": ["https://example.com:demo"],
-        "unparseable3": ["http://[www.example.com]/"],
-        "invalidButParseable1": ["https:example.org"],
-        "invalidButParseable2": ["https://///example.com///"],
-        "prettyNormal": ["https://example.net"],
-        "percentDecoding": ["https://ex%41mple.com/"],
-        "noPercentDecoding": ["https://example.com/%41"]
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        unparseable1: [],
-        unparseable2: [],
-        unparseable3: [],
-        invalidButParseable1: [expect.toMatchURL('https://example.org/')],
-        invalidButParseable2: [expect.toMatchURL('https://example.com///')],
-        prettyNormal: [expect.toMatchURL('https://example.net/')],
-        percentDecoding: [expect.toMatchURL('https://example.com/')],
-        noPercentDecoding: [expect.toMatchURL('https://example.com/%41')]
-      },
-      [
-        `Invalid address "https://ex ample.org/" for the specifier key "unparseable1".`,
-        `Invalid address "https://example.com:demo" for the specifier key "unparseable2".`,
-        `Invalid address "http://[www.example.com]/" for the specifier key "unparseable3".`
-      ]
-    );
-  });
-});
-
-describe('Failing addresses: mismatched trailing slashes', () => {
-  it('should warn for the simple case', () => {
-    expectSpecifierMap(
-      `{
-        "trailer/": "/notrailer",
-        "${BUILT_IN_MODULE_SCHEME}:trailer/": "/bim-notrailer"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'trailer/': [],
-        [`${BUILT_IN_MODULE_SCHEME}:trailer/`]: []
-      },
-      [
-        `Invalid address "https://base.example/notrailer" for package specifier key "trailer/". Package addresses must end with "/".`,
-        `Invalid address "https://base.example/bim-notrailer" for package specifier key "${BUILT_IN_MODULE_SCHEME}:trailer/". Package addresses must end with "/".`
-      ]
-    );
-  });
-
-  it('should warn for a mismatch alone in an array', () => {
-    expectSpecifierMap(
-      `{
-        "trailer/": ["/notrailer"],
-        "${BUILT_IN_MODULE_SCHEME}:trailer/": ["/bim-notrailer"]
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'trailer/': [],
-        [`${BUILT_IN_MODULE_SCHEME}:trailer/`]: []
-      },
-      [
-        `Invalid address "https://base.example/notrailer" for package specifier key "trailer/". Package addresses must end with "/".`,
-        `Invalid address "https://base.example/bim-notrailer" for package specifier key "${BUILT_IN_MODULE_SCHEME}:trailer/". Package addresses must end with "/".`
-      ]
-    );
-  });
-
-  it('should warn for a mismatch alongside non-mismatches in an array', () => {
-    expectSpecifierMap(
-      `{
-        "trailer/": ["/atrailer/", "/notrailer"],
-        "${BUILT_IN_MODULE_SCHEME}:trailer/": ["/bim-atrailer/", "/bim-notrailer"]
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'trailer/': [expect.toMatchURL('https://base.example/atrailer/')],
-        [`${BUILT_IN_MODULE_SCHEME}:trailer/`]: [expect.toMatchURL('https://base.example/bim-atrailer/')]
-      },
-      [
-        `Invalid address "https://base.example/notrailer" for package specifier key "trailer/". Package addresses must end with "/".`,
-        `Invalid address "https://base.example/bim-notrailer" for package specifier key "${BUILT_IN_MODULE_SCHEME}:trailer/". Package addresses must end with "/".`
-      ]
-    );
-  });
-});
-
-describe('Other invalid addresses', () => {
-  it('should ignore unprefixed strings that are not absolute URLs', () => {
-    for (const bad of ['bar', '\\bar', '~bar', '#bar', '?bar']) {
-      expectSpecifierMap(
-        `{
-          "foo": ${JSON.stringify(bad)}
-        }`,
-        'https://base.example/path1/path2/path3',
-        {
-          foo: []
-        },
-        [`Invalid address "${bad}" for the specifier key "foo".`]
-      );
-    }
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-schema.js
+++ /dev/null
@@ -1,139 +0,0 @@
-'use strict';
-const { parseFromString } = require('../lib/parser.js');
-const { expectBad, expectWarnings, expectSpecifierMap } = require('./helpers/parsing.js');
-
-const nonObjectStrings = ['null', 'true', '1', '"foo"', '[]'];
-
-test('Invalid JSON', () => {
-  expect(parseFromString('{ imports: {} }', 'https://base.example/')).toThrow('SyntaxError');
-});
-
-describe('Mismatching the top-level schema', () => {
-  it('should throw for top-level non-objects', () => {
-    for (const nonObject of nonObjectStrings) {
-      expectBad(nonObject, 'https://base.example/');
-    }
-  });
-
-  it('should throw if imports is a non-object', () => {
-    for (const nonObject of nonObjectStrings) {
-      expectBad(`{ "imports": ${nonObject} }`, 'https://base.example/');
-    }
-  });
-
-  it('should throw if scopes is a non-object', () => {
-    for (const nonObject of nonObjectStrings) {
-      expectBad(`{ "scopes": ${nonObject} }`, 'https://base.example/');
-    }
-  });
-
-  it('should ignore unspecified top-level entries', () => {
-    expectWarnings(
-      `{
-        "imports": {},
-        "new-feature": {},
-        "scops": {}
-      }`,
-      'https://base.example/',
-      { imports: {}, scopes: {} },
-      [
-        `Invalid top-level key "new-feature". Only "imports" and "scopes" can be present.`,
-        `Invalid top-level key "scops". Only "imports" and "scopes" can be present.`
-      ]
-    );
-  });
-});
-
-describe('Mismatching the specifier map schema', () => {
-  const invalidAddressStrings = ['true', '1', '{}'];
-  const invalidInsideArrayStrings = ['null', 'true', '1', '{}', '[]'];
-
-  it('should ignore entries where the address is not a string, array, or null', () => {
-    for (const invalid of invalidAddressStrings) {
-      expectSpecifierMap(
-        `{
-          "foo": ${invalid},
-          "bar": ["https://example.com/"]
-        }`,
-        'https://base.example/',
-        {
-          bar: [expect.toMatchURL('https://example.com/')]
-        },
-        [
-          `Invalid address ${invalid} for the specifier key "foo". ` +
-          `Addresses must be strings, arrays, or null.`
-        ]
-      );
-    }
-  });
-
-  it('should ignore entries where the specifier key is an empty string', () => {
-    expectSpecifierMap(
-      `{
-        "": ["https://example.com/"]
-      }`,
-      'https://base.example/',
-      {},
-      [`Invalid empty string specifier key.`]
-    );
-  });
-
-  it('should ignore members of an address array that are not strings', () => {
-    for (const invalid of invalidInsideArrayStrings) {
-      expectSpecifierMap(
-        `{
-          "foo": ["https://example.com/", ${invalid}],
-          "bar": ["https://example.com/"]
-        }`,
-        'https://base.example/',
-        {
-          foo: [expect.toMatchURL('https://example.com/')],
-          bar: [expect.toMatchURL('https://example.com/')]
-        },
-        [
-          `Invalid address ${invalid} inside the address array for the specifier key "foo". ` +
-          `Address arrays must only contain strings.`
-        ]
-      );
-    }
-  });
-
-  it('should throw if a scope\'s value is not an object', () => {
-    for (const invalid of nonObjectStrings) {
-      expectBad(`{ "scopes": { "https://scope.example/": ${invalid} } }`, 'https://base.example/');
-    }
-  });
-});
-
-describe('Normalization', () => {
-  it('should normalize empty import maps to have imports and scopes keys', () => {
-    expect(parseFromString(`{}`, 'https://base.example/'))
-      .toEqual({ imports: {}, scopes: {} });
-  });
-
-  it('should normalize an import map without imports to have imports', () => {
-    expect(parseFromString(`{ "scopes": {} }`, 'https://base.example/'))
-      .toEqual({ imports: {}, scopes: {} });
-  });
-
-  it('should normalize an import map without scopes to have scopes', () => {
-    expect(parseFromString(`{ "imports": {} }`, 'https://base.example/'))
-      .toEqual({ imports: {}, scopes: {} });
-  });
-
-  it('should normalize addresses to arrays', () => {
-    expectSpecifierMap(
-      `{
-        "foo": "https://example.com/1",
-        "bar": ["https://example.com/2"],
-        "baz": null
-      }`,
-      'https://base.example/',
-      {
-        foo: [expect.toMatchURL('https://example.com/1')],
-        bar: [expect.toMatchURL('https://example.com/2')],
-        baz: []
-      }
-    );
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-scope-keys.js
+++ /dev/null
@@ -1,144 +0,0 @@
-'use strict';
-const { expectScopes } = require('./helpers/parsing.js');
-
-describe('Relative URL scope keys', () => {
-  it('should work with no prefix', () => {
-    expectScopes(
-      ['foo'],
-      'https://base.example/path1/path2/path3',
-      ['https://base.example/path1/path2/foo']
-    );
-  });
-
-  it('should work with ./, ../, and / prefixes', () => {
-    expectScopes(
-      ['./foo', '../foo', '/foo'],
-      'https://base.example/path1/path2/path3',
-      [
-        'https://base.example/path1/path2/foo',
-        'https://base.example/path1/foo',
-        'https://base.example/foo'
-      ]
-    );
-  });
-
-  it('should work with /s, ?s, and #s', () => {
-    expectScopes(
-      ['foo/bar?baz#qux'],
-      'https://base.example/path1/path2/path3',
-      ['https://base.example/path1/path2/foo/bar?baz#qux']
-    );
-  });
-
-  it('should work with an empty string scope key', () => {
-    expectScopes(
-      [''],
-      'https://base.example/path1/path2/path3',
-      ['https://base.example/path1/path2/path3']
-    );
-  });
-
-  it('should work with / suffixes', () => {
-    expectScopes(
-      ['foo/', './foo/', '../foo/', '/foo/', '/foo//'],
-      'https://base.example/path1/path2/path3',
-      [
-        'https://base.example/path1/path2/foo/',
-        'https://base.example/path1/path2/foo/',
-        'https://base.example/path1/foo/',
-        'https://base.example/foo/',
-        'https://base.example/foo//'
-      ]
-    );
-  });
-
-  it('should deduplicate based on URL parsing rules', () => {
-    expectScopes(
-      ['foo/\\', 'foo//', 'foo\\\\'],
-      'https://base.example/path1/path2/path3',
-      ['https://base.example/path1/path2/foo//']
-    );
-  });
-});
-
-describe('Absolute URL scope keys', () => {
-  it('should accept all absolute URL scope keys, with or without fetch schemes', () => {
-    expectScopes(
-      [
-        'about:good',
-        'blob:good',
-        'data:good',
-        'file:///good',
-        'filesystem:http://example.com/good/',
-        'http://good/',
-        'https://good/',
-        'ftp://good/',
-        'import:bad',
-        'mailto:bad',
-        'javascript:bad',
-        'wss:ba'
-      ],
-      'https://base.example/path1/path2/path3',
-      [
-        'about:good',
-        'blob:good',
-        'data:good',
-        'file:///good',
-        'filesystem:http://example.com/good/',
-        'http://good/',
-        'https://good/',
-        'ftp://good/',
-        'import:bad',
-        'mailto:bad',
-        'javascript:bad',
-        'wss://ba/'
-      ],
-      []
-    );
-  });
-
-  it('should parse absolute URL scope keys, ignoring unparseable ones', () => {
-    expectScopes(
-      [
-        'https://ex ample.org/',
-        'https://example.com:demo',
-        'http://[www.example.com]/',
-        'https:example.org',
-        'https://///example.com///',
-        'https://example.net',
-        'https://ex%41mple.com/foo/',
-        'https://example.com/%41'
-      ],
-      'https://base.example/path1/path2/path3',
-      [
-        'https://base.example/path1/path2/example.org', // tricky case! remember we have a base URL
-        'https://example.com///',
-        'https://example.net/',
-        'https://example.com/foo/',
-        'https://example.com/%41'
-      ],
-      [
-        'Invalid scope "https://ex ample.org/" (parsed against base URL "https://base.example/path1/path2/path3").',
-        'Invalid scope "https://example.com:demo" (parsed against base URL "https://base.example/path1/path2/path3").',
-        'Invalid scope "http://[www.example.com]/" (parsed against base URL "https://base.example/path1/path2/path3").'
-      ]
-    );
-  });
-
-  it('should ignore relative URL scope keys when the base URL is a data: URL', () => {
-    expectScopes(
-      [
-        './foo',
-        '../foo',
-        '/foo'
-      ],
-      'data:text/html,test',
-      [],
-      [
-        'Invalid scope "./foo" (parsed against base URL "data:text/html,test").',
-        'Invalid scope "../foo" (parsed against base URL "data:text/html,test").',
-        'Invalid scope "/foo" (parsed against base URL "data:text/html,test").'
-      ]
-    );
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/parsing-specifier-keys.js
+++ /dev/null
@@ -1,159 +0,0 @@
-'use strict';
-const { expectSpecifierMap } = require('./helpers/parsing.js');
-const { BUILT_IN_MODULE_SCHEME } = require('../lib/utils.js');
-
-const BLANK = `${BUILT_IN_MODULE_SCHEME}:blank`;
-
-describe('Relative URL-like specifier keys', () => {
-  it('should absolutize strings prefixed with ./, ../, or / into the corresponding URLs', () => {
-    expectSpecifierMap(
-      `{
-        "./foo": "/dotslash",
-        "../foo": "/dotdotslash",
-        "/foo": "/slash"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'https://base.example/path1/path2/foo': [expect.toMatchURL('https://base.example/dotslash')],
-        'https://base.example/path1/foo': [expect.toMatchURL('https://base.example/dotdotslash')],
-        'https://base.example/foo': [expect.toMatchURL('https://base.example/slash')]
-      }
-    );
-  });
-
-  it('should not absolutize strings prefixed with ./, ../, or / with a data: URL base', () => {
-    expectSpecifierMap(
-      `{
-        "./foo": "https://example.com/dotslash",
-        "../foo": "https://example.com/dotdotslash",
-        "/foo": "https://example.com/slash"
-      }`,
-      'data:text/html,test',
-      {
-        './foo': [expect.toMatchURL('https://example.com/dotslash')],
-        '../foo': [expect.toMatchURL('https://example.com/dotdotslash')],
-        '/foo': [expect.toMatchURL('https://example.com/slash')]
-      }
-    );
-  });
-
-  it('should absolutize the literal strings ./, ../, or / with no suffix', () => {
-    expectSpecifierMap(
-      `{
-        "./": "/dotslash/",
-        "../": "/dotdotslash/",
-        "/": "/slash/"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'https://base.example/path1/path2/': [expect.toMatchURL('https://base.example/dotslash/')],
-        'https://base.example/path1/': [expect.toMatchURL('https://base.example/dotdotslash/')],
-        'https://base.example/': [expect.toMatchURL('https://base.example/slash/')]
-      }
-    );
-  });
-
-  it('should treat percent-encoded variants of ./, ../, or / as bare specifiers', () => {
-    expectSpecifierMap(
-      `{
-        "%2E/": "/dotSlash1/",
-        "%2E%2E/": "/dotDotSlash1/",
-        ".%2F": "/dotSlash2",
-        "..%2F": "/dotDotSlash2",
-        "%2F": "/slash2",
-        "%2E%2F": "/dotSlash3",
-        "%2E%2E%2F": "/dotDotSlash3"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        '%2E/': [expect.toMatchURL('https://base.example/dotSlash1/')],
-        '%2E%2E/': [expect.toMatchURL('https://base.example/dotDotSlash1/')],
-        '.%2F': [expect.toMatchURL('https://base.example/dotSlash2')],
-        '..%2F': [expect.toMatchURL('https://base.example/dotDotSlash2')],
-        '%2F': [expect.toMatchURL('https://base.example/slash2')],
-        '%2E%2F': [expect.toMatchURL('https://base.example/dotSlash3')],
-        '%2E%2E%2F': [expect.toMatchURL('https://base.example/dotDotSlash3')]
-      }
-    );
-  });
-});
-
-describe('Absolute URL specifier keys', () => {
-  it('should only accept absolute URL specifier keys with fetch schemes, treating others as bare specifiers', () => {
-    expectSpecifierMap(
-      `{
-        "about:good": "/about",
-        "blob:good": "/blob",
-        "data:good": "/data",
-        "file:///good": "/file",
-        "filesystem:good": "/filesystem",
-        "http://good/": "/http/",
-        "https://good/": "/https/",
-        "ftp://good/": "/ftp/",
-        "import:bad": "/import",
-        "mailto:bad": "/mailto",
-        "javascript:bad": "/javascript",
-        "wss:bad": "/wss"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'about:good': [expect.toMatchURL('https://base.example/about')],
-        'blob:good': [expect.toMatchURL('https://base.example/blob')],
-        'data:good': [expect.toMatchURL('https://base.example/data')],
-        'file:///good': [expect.toMatchURL('https://base.example/file')],
-        'filesystem:good': [expect.toMatchURL('https://base.example/filesystem')],
-        'http://good/': [expect.toMatchURL('https://base.example/http/')],
-        'https://good/': [expect.toMatchURL('https://base.example/https/')],
-        'ftp://good/': [expect.toMatchURL('https://base.example/ftp/')],
-        'import:bad': [expect.toMatchURL('https://base.example/import')],
-        'mailto:bad': [expect.toMatchURL('https://base.example/mailto')],
-        'javascript:bad': [expect.toMatchURL('https://base.example/javascript')],
-        'wss:bad': [expect.toMatchURL('https://base.example/wss')]
-      }
-    );
-  });
-
-  it('should parse absolute URLs, treating unparseable ones as bare specifiers', () => {
-    expectSpecifierMap(
-      `{
-        "https://ex ample.org/": "/unparseable1/",
-        "https://example.com:demo": "/unparseable2",
-        "http://[www.example.com]/": "/unparseable3/",
-        "https:example.org": "/invalidButParseable1/",
-        "https://///example.com///": "/invalidButParseable2/",
-        "https://example.net": "/prettyNormal/",
-        "https://ex%41mple.com/": "/percentDecoding/",
-        "https://example.com/%41": "/noPercentDecoding"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        'https://ex ample.org/': [expect.toMatchURL('https://base.example/unparseable1/')],
-        'https://example.com:demo': [expect.toMatchURL('https://base.example/unparseable2')],
-        'http://[www.example.com]/': [expect.toMatchURL('https://base.example/unparseable3/')],
-        'https://example.org/': [expect.toMatchURL('https://base.example/invalidButParseable1/')],
-        'https://example.com///': [expect.toMatchURL('https://base.example/invalidButParseable2/')],
-        'https://example.net/': [expect.toMatchURL('https://base.example/prettyNormal/')],
-        'https://example.com/': [expect.toMatchURL('https://base.example/percentDecoding/')],
-        'https://example.com/%41': [expect.toMatchURL('https://base.example/noPercentDecoding')]
-      }
-    );
-  });
-
-  it('should parse built-in module specifier keys, including with a "/"', () => {
-    expectSpecifierMap(
-      `{
-        "${BLANK}": "/blank",
-        "${BLANK}/": "/blank/",
-        "${BLANK}/foo": "/blank/foo",
-        "${BLANK}\\\\foo": "/blank/backslashfoo"
-      }`,
-      'https://base.example/path1/path2/path3',
-      {
-        [BLANK]: [expect.toMatchURL('https://base.example/blank')],
-        [`${BLANK}/`]: [expect.toMatchURL('https://base.example/blank/')],
-        [`${BLANK}/foo`]: [expect.toMatchURL('https://base.example/blank/foo')],
-        [`${BLANK}\\foo`]: [expect.toMatchURL('https://base.example/blank/backslashfoo')]
-      }
-    );
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-builtins.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-const { URL } = require('url');
-const { parseFromString } = require('../lib/parser.js');
-const { resolve } = require('../lib/resolver.js');
-const { BUILT_IN_MODULE_SCHEME } = require('../lib/utils.js');
-
-const mapBaseURL = new URL('https://example.com/app/index.html');
-const scriptURL = new URL('https://example.com/js/app.mjs');
-
-const BLANK = `${BUILT_IN_MODULE_SCHEME}:blank`;
-const NONE = `${BUILT_IN_MODULE_SCHEME}:none`;
-
-function makeResolveUnderTest(mapString) {
-  const map = parseFromString(mapString, mapBaseURL);
-  return specifier => resolve(specifier, map, scriptURL);
-}
-
-describe('Unmapped built-in module specifiers', () => {
-  const resolveUnderTest = makeResolveUnderTest(`{}`);
-
-  it(`should resolve "${BLANK}" to "${BLANK}"`, () => {
-    expect(resolveUnderTest(BLANK)).toMatchURL(BLANK);
-  });
-
-  it(`should error resolving "${NONE}"`, () => {
-    expect(() => resolveUnderTest(NONE)).toThrow(TypeError);
-  });
-});
-
-describe('Remapping built-in module specifiers', () => {
-  it('should remap built-in modules', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "${BLANK}": "./blank.mjs",
-        "${NONE}": "./none.mjs"
-      }
-    }`);
-
-    expect(resolveUnderTest(BLANK)).toMatchURL('https://example.com/app/blank.mjs');
-    expect(resolveUnderTest(NONE)).toMatchURL('https://example.com/app/none.mjs');
-  });
-
-  it('should remap built-in modules with slashes', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "${BLANK}/": "./blank-slash/",
-        "${BLANK}/foo": "./blank-foo.mjs",
-        "${NONE}/": "./none-slash/",
-        "${NONE}/foo": "./none-foo.mjs"
-      }
-    }`);
-
-    expect(resolveUnderTest(`${BLANK}/`)).toMatchURL('https://example.com/app/blank-slash/');
-    expect(resolveUnderTest(`${BLANK}/foo`)).toMatchURL('https://example.com/app/blank-foo.mjs');
-    expect(resolveUnderTest(`${BLANK}/bar`)).toMatchURL('https://example.com/app/blank-slash/bar');
-    expect(resolveUnderTest(`${NONE}/`)).toMatchURL('https://example.com/app/none-slash/');
-    expect(resolveUnderTest(`${NONE}/foo`)).toMatchURL('https://example.com/app/none-foo.mjs');
-    expect(resolveUnderTest(`${NONE}/bar`)).toMatchURL('https://example.com/app/none-slash/bar');
-  });
-
-  it('should remap built-in modules with fallbacks', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "${BLANK}": ["${BLANK}", "./blank.mjs"],
-        "${NONE}": ["${NONE}", "./none.mjs"]
-      }
-    }`);
-
-    expect(resolveUnderTest(BLANK)).toMatchURL(BLANK);
-    expect(resolveUnderTest(NONE)).toMatchURL('https://example.com/app/none.mjs');
-  });
-
-  it('should remap built-in modules with slashes and fallbacks', () => {
-    // NOTE: `${BLANK}/for-testing` is not per spec, just for these tests.
-    // See resolver.js.
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "${BLANK}/": ["${BLANK}/", "./blank/"],
-        "${BLANK}/for-testing": ["${BLANK}/for-testing", "./blank-for-testing-special"],
-        "${NONE}/": ["${NONE}/", "./none/"],
-        "${NONE}/foo": ["${NONE}/foo", "./none-foo-special"]
-      }
-    }`);
-
-    // Built-in modules only resolve for exact matches, so this will trigger the fallback.
-    expect(resolveUnderTest(`${BLANK}/`)).toMatchURL('https://example.com/app/blank/');
-    expect(resolveUnderTest(`${BLANK}/foo`)).toMatchURL('https://example.com/app/blank/foo');
-
-    // This would fall back in a real implementation; it's only because we've gone against
-    // spec in the reference implementation (to make this testable) that this maps.
-    expect(resolveUnderTest(`${BLANK}/for-testing`)).toMatchURL(`${BLANK}/for-testing`);
-
-    expect(resolveUnderTest(`${NONE}/`)).toMatchURL('https://example.com/app/none/');
-    expect(resolveUnderTest(`${NONE}/bar`)).toMatchURL('https://example.com/app/none/bar');
-    expect(resolveUnderTest(`${NONE}/foo`)).toMatchURL('https://example.com/app/none-foo-special');
-  });
-});
-
-describe('Remapping to built-in modules', () => {
-  const resolveUnderTest = makeResolveUnderTest(`{
-    "imports": {
-      "blank": "${BLANK}",
-      "/blank": "${BLANK}",
-      "/blank/": "${BLANK}/",
-      "/blank-for-testing": "${BLANK}/for-testing",
-      "none": "${NONE}",
-      "/none": "${NONE}"
-    }
-  }`);
-
-  it(`should remap to "${BLANK}"`, () => {
-    expect(resolveUnderTest('blank')).toMatchURL(BLANK);
-    expect(resolveUnderTest('/blank')).toMatchURL(BLANK);
-  });
-
-  it(`should fail when remapping to "${BLANK}/"`, () => {
-    expect(() => resolveUnderTest('/blank/')).toThrow(TypeError);
-  });
-
-  it(`should remap to "${BLANK}/for-testing"`, () => {
-    expect(resolveUnderTest('/blank/for-testing')).toMatchURL(`${BLANK}/for-testing`);
-    expect(resolveUnderTest('/blank-for-testing')).toMatchURL(`${BLANK}/for-testing`);
-  });
-
-  it(`should remap to "${BLANK}" for URL-like specifiers`, () => {
-    expect(resolveUnderTest('/blank')).toMatchURL(BLANK);
-    expect(resolveUnderTest('https://example.com/blank')).toMatchURL(BLANK);
-    expect(resolveUnderTest('https://///example.com/blank')).toMatchURL(BLANK);
-  });
-
-  it(`should fail when remapping to "${NONE}"`, () => {
-    expect(() => resolveUnderTest('none')).toThrow(TypeError);
-    expect(() => resolveUnderTest('/none')).toThrow(TypeError);
-  });
-});
-
-describe('Fallbacks with built-in module addresses', () => {
-  const resolveUnderTest = makeResolveUnderTest(`{
-    "imports": {
-      "blank": [
-        "${BLANK}",
-        "./blank-fallback.mjs"
-      ],
-      "none": [
-        "${NONE}",
-        "./none-fallback.mjs"
-      ]
-    }
-  }`);
-
-  it(`should resolve to "${BLANK}"`, () => {
-    expect(resolveUnderTest('blank')).toMatchURL(BLANK);
-  });
-
-  it(`should fall back past "${NONE}"`, () => {
-    expect(resolveUnderTest('none')).toMatchURL('https://example.com/app/none-fallback.mjs');
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-not-yet-implemented.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-const { URL } = require('url');
-const { parseFromString } = require('../lib/parser.js');
-const { resolve } = require('../lib/resolver.js');
-const { BUILT_IN_MODULE_SCHEME } = require('../lib/utils.js');
-
-const mapBaseURL = new URL('https://example.com/app/index.html');
-const scriptURL = new URL('https://example.com/js/app.mjs');
-
-const BLANK = `${BUILT_IN_MODULE_SCHEME}:blank`;
-
-function makeResolveUnderTest(mapString) {
-  const map = parseFromString(mapString, mapBaseURL);
-  return specifier => resolve(specifier, map, scriptURL);
-}
-
-describe('Fallbacks that are not [built-in, fetch scheme]', () => {
-  const resolveUnderTest = makeResolveUnderTest(`{
-    "imports": {
-      "bad1": [
-        "${BLANK}",
-        "${BLANK}"
-      ],
-      "bad2": [
-        "${BLANK}",
-        "/bad2-1.mjs",
-        "/bad2-2.mjs"
-      ],
-      "bad3": [
-        "/bad3-1.mjs",
-        "/bad3-2.mjs"
-      ]
-    }
-  }`);
-
-  it('should fail for [built-in, built-in]', () => {
-    expect(() => resolveUnderTest('bad1')).toThrow(/not yet implemented/);
-  });
-
-  it('should fail for [built-in, fetch scheme, fetch scheme]', () => {
-    expect(() => resolveUnderTest('bad2')).toThrow(/not yet implemented/);
-  });
-
-  it('should fail for [fetch scheme, fetch scheme]', () => {
-    expect(() => resolveUnderTest('bad3')).toThrow(/not yet implemented/);
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving-scopes.js
+++ /dev/null
@@ -1,230 +0,0 @@
-'use strict';
-const { URL } = require('url');
-const { parseFromString } = require('../lib/parser.js');
-const { resolve } = require('../lib/resolver.js');
-
-const mapBaseURL = new URL('https://example.com/app/index.html');
-
-function makeResolveUnderTest(mapString) {
-  const map = parseFromString(mapString, mapBaseURL);
-  return (specifier, baseURL) => resolve(specifier, map, baseURL);
-}
-
-describe('Mapped using scope instead of "imports"', () => {
-  const jsNonDirURL = new URL('https://example.com/js');
-  const jsPrefixedURL = new URL('https://example.com/jsiscool');
-  const inJSDirURL = new URL('https://example.com/js/app.mjs');
-  const topLevelURL = new URL('https://example.com/app.mjs');
-
-  it('should fail when the mapping is to an empty array', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "scopes": {
-        "/js/": {
-          "moment": null,
-          "lodash": []
-        }
-      }
-    }`);
-
-    expect(() => resolveUnderTest('moment', inJSDirURL)).toThrow(TypeError);
-    expect(() => resolveUnderTest('lodash', inJSDirURL)).toThrow(TypeError);
-  });
-
-  describe('Exact vs. prefix based matching', () => {
-    it('should match correctly when both are in the map', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "scopes": {
-          "/js": {
-            "moment": "/only-triggered-by-exact/moment",
-            "moment/": "/only-triggered-by-exact/moment/"
-          },
-          "/js/": {
-            "moment": "/triggered-by-any-subpath/moment",
-            "moment/": "/triggered-by-any-subpath/moment/"
-          }
-        }
-      }`);
-
-      expect(resolveUnderTest('moment', jsNonDirURL)).toMatchURL('https://example.com/only-triggered-by-exact/moment');
-      expect(resolveUnderTest('moment/foo', jsNonDirURL)).toMatchURL('https://example.com/only-triggered-by-exact/moment/foo');
-
-      expect(resolveUnderTest('moment', inJSDirURL)).toMatchURL('https://example.com/triggered-by-any-subpath/moment');
-      expect(resolveUnderTest('moment/foo', inJSDirURL)).toMatchURL('https://example.com/triggered-by-any-subpath/moment/foo');
-
-      expect(() => resolveUnderTest('moment', jsPrefixedURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('moment/foo', jsPrefixedURL)).toThrow(TypeError);
-    });
-
-    it('should match correctly when only an exact match is in the map', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "scopes": {
-          "/js": {
-            "moment": "/only-triggered-by-exact/moment",
-            "moment/": "/only-triggered-by-exact/moment/"
-          }
-        }
-      }`);
-
-      expect(resolveUnderTest('moment', jsNonDirURL)).toMatchURL('https://example.com/only-triggered-by-exact/moment');
-      expect(resolveUnderTest('moment/foo', jsNonDirURL)).toMatchURL('https://example.com/only-triggered-by-exact/moment/foo');
-
-      expect(() => resolveUnderTest('moment', inJSDirURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('moment/foo', inJSDirURL)).toThrow(TypeError);
-
-      expect(() => resolveUnderTest('moment', jsPrefixedURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('moment/foo', jsPrefixedURL)).toThrow(TypeError);
-    });
-
-    it('should match correctly when only a prefix match is in the map', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "scopes": {
-          "/js/": {
-            "moment": "/triggered-by-any-subpath/moment",
-            "moment/": "/triggered-by-any-subpath/moment/"
-          }
-        }
-      }`);
-
-      expect(() => resolveUnderTest('moment', jsNonDirURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('moment/foo', jsNonDirURL)).toThrow(TypeError);
-
-      expect(resolveUnderTest('moment', inJSDirURL)).toMatchURL('https://example.com/triggered-by-any-subpath/moment');
-      expect(resolveUnderTest('moment/foo', inJSDirURL)).toMatchURL('https://example.com/triggered-by-any-subpath/moment/foo');
-
-      expect(() => resolveUnderTest('moment', jsPrefixedURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('moment/foo', jsPrefixedURL)).toThrow(TypeError);
-    });
-  });
-
-  describe('Package-like scenarios', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "moment": "/node_modules/moment/src/moment.js",
-        "moment/": "/node_modules/moment/src/",
-        "lodash-dot": "./node_modules/lodash-es/lodash.js",
-        "lodash-dot/": "./node_modules/lodash-es/",
-        "lodash-dotdot": "../node_modules/lodash-es/lodash.js",
-        "lodash-dotdot/": "../node_modules/lodash-es/"
-      },
-      "scopes": {
-        "/": {
-          "moment": "/node_modules_3/moment/src/moment.js",
-          "vue": "/node_modules_3/vue/dist/vue.runtime.esm.js"
-        },
-        "/js/": {
-          "lodash-dot": "./node_modules_2/lodash-es/lodash.js",
-          "lodash-dot/": "./node_modules_2/lodash-es/",
-          "lodash-dotdot": "../node_modules_2/lodash-es/lodash.js",
-          "lodash-dotdot/": "../node_modules_2/lodash-es/"
-        }
-      }
-    }`);
-
-    it('should resolve scoped', () => {
-      expect(resolveUnderTest('lodash-dot', inJSDirURL)).toMatchURL('https://example.com/app/node_modules_2/lodash-es/lodash.js');
-      expect(resolveUnderTest('lodash-dotdot', inJSDirURL)).toMatchURL('https://example.com/node_modules_2/lodash-es/lodash.js');
-      expect(resolveUnderTest('lodash-dot/foo', inJSDirURL)).toMatchURL('https://example.com/app/node_modules_2/lodash-es/foo');
-      expect(resolveUnderTest('lodash-dotdot/foo', inJSDirURL)).toMatchURL('https://example.com/node_modules_2/lodash-es/foo');
-    });
-
-    it('should apply best scope match', () => {
-      expect(resolveUnderTest('moment', topLevelURL)).toMatchURL('https://example.com/node_modules_3/moment/src/moment.js');
-      expect(resolveUnderTest('moment', inJSDirURL)).toMatchURL('https://example.com/node_modules_3/moment/src/moment.js');
-      expect(resolveUnderTest('vue', inJSDirURL)).toMatchURL('https://example.com/node_modules_3/vue/dist/vue.runtime.esm.js');
-    });
-
-    it('should fallback to "imports"', () => {
-      expect(resolveUnderTest('moment/foo', topLevelURL)).toMatchURL('https://example.com/node_modules/moment/src/foo');
-      expect(resolveUnderTest('moment/foo', inJSDirURL)).toMatchURL('https://example.com/node_modules/moment/src/foo');
-      expect(resolveUnderTest('lodash-dot', topLevelURL)).toMatchURL('https://example.com/app/node_modules/lodash-es/lodash.js');
-      expect(resolveUnderTest('lodash-dotdot', topLevelURL)).toMatchURL('https://example.com/node_modules/lodash-es/lodash.js');
-      expect(resolveUnderTest('lodash-dot/foo', topLevelURL)).toMatchURL('https://example.com/app/node_modules/lodash-es/foo');
-      expect(resolveUnderTest('lodash-dotdot/foo', topLevelURL)).toMatchURL('https://example.com/node_modules/lodash-es/foo');
-    });
-
-    it('should still fail for package-like specifiers that are not declared', () => {
-      expect(() => resolveUnderTest('underscore/', inJSDirURL)).toThrow(TypeError);
-      expect(() => resolveUnderTest('underscore/foo', inJSDirURL)).toThrow(TypeError);
-    });
-  });
-
-  describe('The scope inheritance example from the README', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "a": "/a-1.mjs",
-        "b": "/b-1.mjs",
-        "c": "/c-1.mjs"
-      },
-      "scopes": {
-        "/scope2/": {
-          "a": "/a-2.mjs"
-        },
-        "/scope2/scope3/": {
-          "b": "/b-3.mjs"
-        }
-      }
-    }`);
-
-    const scope1URL = new URL('https://example.com/scope1/foo.mjs');
-    const scope2URL = new URL('https://example.com/scope2/foo.mjs');
-    const scope3URL = new URL('https://example.com/scope2/scope3/foo.mjs');
-
-    it('should fall back to "imports" when none match', () => {
-      expect(resolveUnderTest('a', scope1URL)).toMatchURL('https://example.com/a-1.mjs');
-      expect(resolveUnderTest('b', scope1URL)).toMatchURL('https://example.com/b-1.mjs');
-      expect(resolveUnderTest('c', scope1URL)).toMatchURL('https://example.com/c-1.mjs');
-    });
-
-    it('should use a direct scope override', () => {
-      expect(resolveUnderTest('a', scope2URL)).toMatchURL('https://example.com/a-2.mjs');
-      expect(resolveUnderTest('b', scope2URL)).toMatchURL('https://example.com/b-1.mjs');
-      expect(resolveUnderTest('c', scope2URL)).toMatchURL('https://example.com/c-1.mjs');
-    });
-
-    it('should use an indirect scope override', () => {
-      expect(resolveUnderTest('a', scope3URL)).toMatchURL('https://example.com/a-2.mjs');
-      expect(resolveUnderTest('b', scope3URL)).toMatchURL('https://example.com/b-3.mjs');
-      expect(resolveUnderTest('c', scope3URL)).toMatchURL('https://example.com/c-1.mjs');
-    });
-  });
-
-  describe('Relative URL scope keys', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "a": "/a-1.mjs",
-        "b": "/b-1.mjs",
-        "c": "/c-1.mjs"
-      },
-      "scopes": {
-        "": {
-          "a": "/a-empty-string.mjs"
-        },
-        "./": {
-          "b": "/b-dot-slash.mjs"
-        },
-        "../": {
-          "c": "/c-dot-dot-slash.mjs"
-        }
-      }
-    }`);
-    const inSameDirAsMap = new URL('./foo.mjs', mapBaseURL);
-    const inDirAboveMap = new URL('../foo.mjs', mapBaseURL);
-
-    it('should resolve an empty string scope using the import map URL', () => {
-      expect(resolveUnderTest('a', mapBaseURL)).toMatchURL('https://example.com/a-empty-string.mjs');
-      expect(resolveUnderTest('a', inSameDirAsMap)).toMatchURL('https://example.com/a-1.mjs');
-    });
-
-    it('should resolve a ./ scope using the import map URL\'s directory', () => {
-      expect(resolveUnderTest('b', mapBaseURL)).toMatchURL('https://example.com/b-dot-slash.mjs');
-      expect(resolveUnderTest('b', inSameDirAsMap)).toMatchURL('https://example.com/b-dot-slash.mjs');
-    });
-
-    it('should resolve a ../ scope using the import map URL\'s directory', () => {
-      expect(resolveUnderTest('c', mapBaseURL)).toMatchURL('https://example.com/c-dot-dot-slash.mjs');
-      expect(resolveUnderTest('c', inSameDirAsMap)).toMatchURL('https://example.com/c-dot-dot-slash.mjs');
-      expect(resolveUnderTest('c', inDirAboveMap)).toMatchURL('https://example.com/c-dot-dot-slash.mjs');
-    });
-  });
-});
-
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/imported/resources/resolving.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict';
-const { URL } = require('url');
-const { parseFromString } = require('../lib/parser.js');
-const { resolve } = require('../lib/resolver.js');
-
-const mapBaseURL = new URL('https://example.com/app/index.html');
-const scriptURL = new URL('https://example.com/js/app.mjs');
-
-function makeResolveUnderTest(mapString) {
-  const map = parseFromString(mapString, mapBaseURL);
-  return specifier => resolve(specifier, map, scriptURL);
-}
-
-describe('Unmapped', () => {
-  const resolveUnderTest = makeResolveUnderTest(`{}`);
-
-  it('should resolve ./ specifiers as URLs', () => {
-    expect(resolveUnderTest('./foo')).toMatchURL('https://example.com/js/foo');
-    expect(resolveUnderTest('./foo/bar')).toMatchURL('https://example.com/js/foo/bar');
-    expect(resolveUnderTest('./foo/../bar')).toMatchURL('https://example.com/js/bar');
-    expect(resolveUnderTest('./foo/../../bar')).toMatchURL('https://example.com/bar');
-  });
-
-  it('should resolve ../ specifiers as URLs', () => {
-    expect(resolveUnderTest('../foo')).toMatchURL('https://example.com/foo');
-    expect(resolveUnderTest('../foo/bar')).toMatchURL('https://example.com/foo/bar');
-    expect(resolveUnderTest('../../../foo/bar')).toMatchURL('https://example.com/foo/bar');
-  });
-
-  it('should resolve / specifiers as URLs', () => {
-    expect(resolveUnderTest('/foo')).toMatchURL('https://example.com/foo');
-    expect(resolveUnderTest('/foo/bar')).toMatchURL('https://example.com/foo/bar');
-    expect(resolveUnderTest('/../../foo/bar')).toMatchURL('https://example.com/foo/bar');
-    expect(resolveUnderTest('/../foo/../bar')).toMatchURL('https://example.com/bar');
-  });
-
-  it('should parse absolute fetch-scheme URLs', () => {
-    expect(resolveUnderTest('about:good')).toMatchURL('about:good');
-    expect(resolveUnderTest('https://example.net')).toMatchURL('https://example.net/');
-    expect(resolveUnderTest('https://ex%41mple.com/')).toMatchURL('https://example.com/');
-    expect(resolveUnderTest('https:example.org')).toMatchURL('https://example.org/');
-    expect(resolveUnderTest('https://///example.com///')).toMatchURL('https://example.com///');
-  });
-
-  it('should fail for absolute non-fetch-scheme URLs', () => {
-    expect(() => resolveUnderTest('mailto:bad')).toThrow(TypeError);
-    expect(() => resolveUnderTest('import:bad')).toThrow(TypeError);
-    expect(() => resolveUnderTest('javascript:bad')).toThrow(TypeError);
-    expect(() => resolveUnderTest('wss:bad')).toThrow(TypeError);
-  });
-
-  it('should fail for strings not parseable as absolute URLs and not starting with ./ ../ or /', () => {
-    expect(() => resolveUnderTest('foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('\\foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest(':foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('@foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('%2E/foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('%2E%2E/foo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('.%2Ffoo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('https://ex ample.org/')).toThrow(TypeError);
-    expect(() => resolveUnderTest('https://example.com:demo')).toThrow(TypeError);
-    expect(() => resolveUnderTest('http://[www.example.com]/')).toThrow(TypeError);
-  });
-});
-
-describe('Mapped using the "imports" key only (no scopes)', () => {
-  it('should fail when the mapping is to an empty array', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "moment": null,
-        "lodash": []
-      }
-    }`);
-
-    expect(() => resolveUnderTest('moment')).toThrow(TypeError);
-    expect(() => resolveUnderTest('lodash')).toThrow(TypeError);
-  });
-
-  describe('Package-like scenarios', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "moment": "/node_modules/moment/src/moment.js",
-        "moment/": "/node_modules/moment/src/",
-        "lodash-dot": "./node_modules/lodash-es/lodash.js",
-        "lodash-dot/": "./node_modules/lodash-es/",
-        "lodash-dotdot": "../node_modules/lodash-es/lodash.js",
-        "lodash-dotdot/": "../node_modules/lodash-es/",
-        "nowhere/": []
-      }
-    }`);
-
-    it('should work for package main modules', () => {
-      expect(resolveUnderTest('moment')).toMatchURL('https://example.com/node_modules/moment/src/moment.js');
-      expect(resolveUnderTest('lodash-dot')).toMatchURL('https://example.com/app/node_modules/lodash-es/lodash.js');
-      expect(resolveUnderTest('lodash-dotdot')).toMatchURL('https://example.com/node_modules/lodash-es/lodash.js');
-    });
-
-    it('should work for package submodules', () => {
-      expect(resolveUnderTest('moment/foo')).toMatchURL('https://example.com/node_modules/moment/src/foo');
-      expect(resolveUnderTest('lodash-dot/foo')).toMatchURL('https://example.com/app/node_modules/lodash-es/foo');
-      expect(resolveUnderTest('lodash-dotdot/foo')).toMatchURL('https://example.com/node_modules/lodash-es/foo');
-    });
-
-    it('should work for package names that end in a slash by just passing through', () => {
-      // TODO: is this the right behavior, or should we throw?
-      expect(resolveUnderTest('moment/')).toMatchURL('https://example.com/node_modules/moment/src/');
-    });
-
-    it('should still fail for package modules that are not declared', () => {
-      expect(() => resolveUnderTest('underscore/')).toThrow(TypeError);
-      expect(() => resolveUnderTest('underscore/foo')).toThrow(TypeError);
-    });
-
-    it('should fail for package submodules that map to nowhere', () => {
-      expect(() => resolveUnderTest('nowhere/foo')).toThrow(TypeError);
-    });
-  });
-
-  describe('Tricky specifiers', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "package/withslash": "/node_modules/package-with-slash/index.mjs",
-        "not-a-package": "/lib/not-a-package.mjs",
-        ".": "/lib/dot.mjs",
-        "..": "/lib/dotdot.mjs",
-        "..\\\\": "/lib/dotdotbackslash.mjs",
-        "%2E": "/lib/percent2e.mjs",
-        "%2F": "/lib/percent2f.mjs"
-      }
-    }`);
-
-    it('should work for explicitly-mapped specifiers that happen to have a slash', () => {
-      expect(resolveUnderTest('package/withslash')).toMatchURL('https://example.com/node_modules/package-with-slash/index.mjs');
-    });
-
-    it('should work when the specifier has punctuation', () => {
-      expect(resolveUnderTest('.')).toMatchURL('https://example.com/lib/dot.mjs');
-      expect(resolveUnderTest('..')).toMatchURL('https://example.com/lib/dotdot.mjs');
-      expect(resolveUnderTest('..\\')).toMatchURL('https://example.com/lib/dotdotbackslash.mjs');
-      expect(resolveUnderTest('%2E')).toMatchURL('https://example.com/lib/percent2e.mjs');
-      expect(resolveUnderTest('%2F')).toMatchURL('https://example.com/lib/percent2f.mjs');
-    });
-
-    it('should fail for attempting to get a submodule of something not declared with a trailing slash', () => {
-      expect(() => resolveUnderTest('not-a-package/foo')).toThrow(TypeError);
-    });
-  });
-
-  describe('URL-like specifiers', () => {
-    const resolveUnderTest = makeResolveUnderTest(`{
-      "imports": {
-        "/node_modules/als-polyfill/index.mjs": "std:kv-storage",
-
-        "/lib/foo.mjs": "./more/bar.mjs",
-        "./dotrelative/foo.mjs": "/lib/dot.mjs",
-        "../dotdotrelative/foo.mjs": "/lib/dotdot.mjs",
-
-        "/lib/no.mjs": null,
-        "./dotrelative/no.mjs": [],
-
-        "/": "/lib/slash-only/",
-        "./": "/lib/dotslash-only/",
-
-        "/test/": "/lib/url-trailing-slash/",
-        "./test/": "/lib/url-trailing-slash-dot/",
-
-        "/test": "/lib/test1.mjs",
-        "../test": "/lib/test2.mjs"
-      }
-    }`);
-
-    it('should remap to other URLs', () => {
-      expect(resolveUnderTest('https://example.com/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs');
-      expect(resolveUnderTest('https://///example.com/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs');
-      expect(resolveUnderTest('/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs');
-
-      expect(resolveUnderTest('https://example.com/app/dotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dot.mjs');
-      expect(resolveUnderTest('../app/dotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dot.mjs');
-
-      expect(resolveUnderTest('https://example.com/dotdotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dotdot.mjs');
-      expect(resolveUnderTest('../dotdotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dotdot.mjs');
-    });
-
-    it('should fail for URLs that remap to empty arrays', () => {
-      expect(() => resolveUnderTest('https://example.com/lib/no.mjs')).toThrow(TypeError);
-      expect(() => resolveUnderTest('/lib/no.mjs')).toThrow(TypeError);
-      expect(() => resolveUnderTest('../lib/no.mjs')).toThrow(TypeError);
-
-      expect(() => resolveUnderTest('https://example.com/app/dotrelative/no.mjs')).toThrow(TypeError);
-      expect(() => resolveUnderTest('/app/dotrelative/no.mjs')).toThrow(TypeError);
-      expect(() => resolveUnderTest('../app/dotrelative/no.mjs')).toThrow(TypeError);
-    });
-
-    it('should remap URLs that are just composed from / and .', () => {
-      expect(resolveUnderTest('https://example.com/')).toMatchURL('https://example.com/lib/slash-only/');
-      expect(resolveUnderTest('/')).toMatchURL('https://example.com/lib/slash-only/');
-      expect(resolveUnderTest('../')).toMatchURL('https://example.com/lib/slash-only/');
-
-      expect(resolveUnderTest('https://example.com/app/')).toMatchURL('https://example.com/lib/dotslash-only/');
-      expect(resolveUnderTest('/app/')).toMatchURL('https://example.com/lib/dotslash-only/');
-      expect(resolveUnderTest('../app/')).toMatchURL('https://example.com/lib/dotslash-only/');
-    });
-
-    it('should remap URLs that are prefix-matched by keys with trailing slashes', () => {
-      expect(resolveUnderTest('/test/foo.mjs')).toMatchURL('https://example.com/lib/url-trailing-slash/foo.mjs');
-      expect(resolveUnderTest('https://example.com/app/test/foo.mjs')).toMatchURL('https://example.com/lib/url-trailing-slash-dot/foo.mjs');
-    });
-
-    it('should use the last entry\'s address when URL-like specifiers parse to the same absolute URL', () => {
-      expect(resolveUnderTest('/test')).toMatchURL('https://example.com/lib/test2.mjs');
-    });
-  });
-
-  describe('Overlapping entries with trailing slashes', () => {
-    it('should favor the most-specific key (no empty arrays)', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "imports": {
-          "a": "/1",
-          "a/": "/2/",
-          "a/b": "/3",
-          "a/b/": "/4/"
-        }
-      }`);
-
-      expect(resolveUnderTest('a')).toMatchURL('https://example.com/1');
-      expect(resolveUnderTest('a/')).toMatchURL('https://example.com/2/');
-      expect(resolveUnderTest('a/b')).toMatchURL('https://example.com/3');
-      expect(resolveUnderTest('a/b/')).toMatchURL('https://example.com/4/');
-      expect(resolveUnderTest('a/b/c')).toMatchURL('https://example.com/4/c');
-    });
-
-    it('should favor the most-specific key when empty arrays are involved for less-specific keys', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "imports": {
-          "a": [],
-          "a/": [],
-          "a/b": "/3",
-          "a/b/": "/4/"
-        }
-      }`);
-
-      expect(() => resolveUnderTest('a')).toThrow(TypeError);
-      expect(() => resolveUnderTest('a/')).toThrow(TypeError);
-      expect(() => resolveUnderTest('a/x')).toThrow(TypeError);
-      expect(resolveUnderTest('a/b')).toMatchURL('https://example.com/3');
-      expect(resolveUnderTest('a/b/')).toMatchURL('https://example.com/4/');
-      expect(resolveUnderTest('a/b/c')).toMatchURL('https://example.com/4/c');
-      expect(() => resolveUnderTest('a/x/c')).toThrow(TypeError);
-    });
-
-    it('should favor the most-specific key when empty arrays are involved for more-specific keys', () => {
-      const resolveUnderTest = makeResolveUnderTest(`{
-        "imports": {
-          "a": "/1",
-          "a/": "/2/",
-          "a/b": [],
-          "a/b/": []
-        }
-      }`);
-
-      expect(resolveUnderTest('a')).toMatchURL('https://example.com/1');
-      expect(resolveUnderTest('a/')).toMatchURL('https://example.com/2/');
-      expect(resolveUnderTest('a/x')).toMatchURL('https://example.com/2/x');
-      expect(() => resolveUnderTest('a/b')).toThrow(TypeError);
-      expect(() => resolveUnderTest('a/b/')).toThrow(TypeError);
-      expect(() => resolveUnderTest('a/b/c')).toThrow(TypeError);
-      expect(resolveUnderTest('a/x/c')).toMatchURL('https://example.com/2/x/c');
-    });
-  });
-});
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/builtin-support.tentative/static-import.py
+++ /dev/null
@@ -1,5 +0,0 @@
-def main(request, response):
-    return (
-        (('Content-Type', 'text/javascript'),),
-        'import "{}";\n'.format(request.GET.first('url'))
-    )
deleted file mode 100644
--- a/testing/web-platform/tests/import-maps/resources/jest-test-helper.js
+++ /dev/null
@@ -1,132 +0,0 @@
-// Hacky glue code to run Jest-based tests as WPT tests.
-// TODO(https://github.com/WICG/import-maps/issues/170): Consider better ways
-// to write and run tests.
-
-setup({allow_uncaught_exception : true});
-
-const exports = {};
-
-function require(name) {
-  return Object.assign({
-    'URL': URL,
-    'parseFromString': parseFromString,
-    'resolve': resolve,
-    'BUILT_IN_MODULE_SCHEME': 'std'
-  }, exports);
-}
-
-// Sort keys and then stringify for comparison.
-function stringifyImportMap(importMap) {
-  function getKeys(m) {
-    if (typeof m !== 'object')
-      return [];
-
-    let keys = [];
-    for (const key in m) {
-      keys.push(key);
-      keys = keys.concat(getKeys(m[key]));
-    }
-    return keys;
-  }
-  return JSON.stringify(importMap, getKeys(importMap).sort());
-}
-
-function expect(v) {
-  return {
-    toMatchURL: expected => assert_equals(v, expected),
-    toThrow: expected => {
-      if (v.localName === 'iframe') {
-        // `v` is the result of parseFromString(), and thus toThrow()
-        // should be examining the error in that iframe.
-        assert_throws_js(v.contentWindow[expected], () => { throw v.contentWindow.windowError });
-      } else if (expected.test && expected.test('not yet implemented')) {
-        // We override /not yet implemented/ expectation.
-        assert_throws_js(TypeError, v);
-      } else {
-        assert_throws_js(expected, v);
-      }
-    },
-    toEqual: expected => {
-      if (v.localName === 'iframe') {
-        // `v` is the result of parseFromString(), and thus toEqual() is
-        // expected to compare parsed import maps.
-        // We sort keys when stringifying for normalization.
-        const actualParsedImportMap = JSON.parse(
-            internals.getParsedImportMap(v.contentDocument));
-        assert_equals(
-          stringifyImportMap(actualParsedImportMap),
-          stringifyImportMap(expected)
-        );
-      } else {
-        assert_object_equals(v, expected);
-      }
-    }
-  };
-}
-
-expect.toMatchURL = expected => expected;
-
-const test_harness_test = test;
-test = it;
-
-let current_message = '';
-function describe(message, f) {
-  const old = current_message;
-  if (current_message !== '') {
-    current_message += ' / ';
-  }
-  current_message += message;
-  f();
-  current_message = old;
-}
-function it(message, f) {
-  const old = current_message;
-  if (current_message !== '') {
-    current_message += ' / ';
-  }
-  current_message += message;
-  test_harness_test(t => t.step_func(f)(), current_message);
-  current_message = old;
-}
-
-// Creates a new Document (via <iframe>) and add an inline import map.
-// Currently document.write() is used to make everything synchronous, which
-// is just needed for running the existing Jest-based tests easily.
-function parseFromString(mapString, mapBaseURL) {
-  // We can't test data: base URLs because <base> rejects data: URLs.
-  if (new URL(mapBaseURL).protocol === 'data:') {
-    throw Error('test helper does not support data: base URLs');
-  }
-
-  const iframe = document.createElement('iframe');
-  document.body.appendChild(iframe);
-  iframe.contentDocument.write(`
-    <base href="${mapBaseURL}">
-    <script>
-    var scriptError;
-    var windowError;
-    function onScriptError(event) {
-      scriptError = event.error;
-    }
-    function onWindowError(event) {
-      windowError = event.error;
-      return false;
-    }
-    window.addEventListener('error', onWindowError);
-    </sc` + `ript>
-    <script type="importmap" onerror="onScriptError(event)">
-    ${mapString}
-    </sc` + `ript>
-  `);
-  iframe.contentDocument.close();
-
-  return iframe;
-}
-
-// URL resolution is tested using Chromium's `internals`.
-// TODO(hiroshige): Remove the Chromium-specific dependency.
-function resolve(specifier, map, baseURL) {
-  return internals.resolveModuleSpecifier(specifier,
-                                          baseURL,
-                                          map.contentDocument);
-}