forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1775424 - Part 1: Impl import.meta.resolve() on browser. r=jonco,…
…yulia Define 'resolve()' function on import.meta object on browser. Add mochitests for import.meta.resolve, as some of the wpt tests for import.meta.resolve cannot be run due to some bugs in wpt testing framework. See https://bugzilla.mozilla.org/show_bug.cgi?id=1785806 Differential Revision: https://phabricator.services.mozilla.com/D154105
- Loading branch information
1 parent
b4a2cfe
commit d17eb87
Showing
8 changed files
with
220 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
dom/base/test/jsmodules/importmaps/test_import_meta_resolve_importMap.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<!DOCTYPE html> | ||
<head> | ||
<meta charset=utf-8> | ||
<title>Test import.meta.resolve with import maps</title> | ||
</head> | ||
<body onload='testLoaded()'> | ||
|
||
<script type="importmap"> | ||
{ | ||
"imports": { | ||
"simple": "./module_simpleExport.js" | ||
} | ||
} | ||
</script> | ||
|
||
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> | ||
<script> | ||
var wasRun = false; | ||
var hasThrown = false; | ||
window.onerror = handleError; | ||
|
||
function handleError(msg, url, line, col, error) { | ||
ok(error instanceof TypeError, "Thrown error should be TypeError."); | ||
hasThrown = true; | ||
} | ||
</script> | ||
|
||
<script type="module"> | ||
ok(import.meta.resolve("simple") == | ||
"chrome://mochitests/content/chrome/dom/base/test/jsmodules/importmaps/module_simpleExport.js", | ||
"calling import.meta.resolve with a specifier from import map."); | ||
wasRun = true; | ||
</script> | ||
|
||
<script type="module"> | ||
// should throw a TypeError | ||
import.meta.resolve("fail"); | ||
</script> | ||
|
||
<script> | ||
SimpleTest.waitForExplicitFinish(); | ||
|
||
function testLoaded() { | ||
ok(wasRun, "Check inline module has run."); | ||
ok(hasThrown, "Check inline module has thrown."); | ||
SimpleTest.finish(); | ||
} | ||
</script> | ||
</body> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
<!DOCTYPE html> | ||
<head> | ||
<meta charset=utf-8> | ||
<title>Test import.meta.resolve</title> | ||
</head> | ||
<body onload='testLoaded()'> | ||
|
||
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> | ||
<script> | ||
SimpleTest.waitForExplicitFinish(); | ||
|
||
function assertThrowsTypeError(fn, msg) { | ||
let hasThrown = false; | ||
try { | ||
fn(); | ||
} catch (error) { | ||
hasThrown = true; | ||
ok(error instanceof TypeError, "Thrown error should be TypeError."); | ||
} | ||
ok(hasThrown, msg); | ||
} | ||
|
||
function testLoaded() { | ||
SimpleTest.finish(); | ||
} | ||
</script> | ||
|
||
<script type="module"> | ||
is(typeof import.meta.resolve, "function", "resolve should be a function."); | ||
is(import.meta.resolve.name, "resolve", "resolve.name should be 'resolve'."); | ||
is(import.meta.resolve.length, 1, "resolve.length should be 1."); | ||
is(Object.getPrototypeOf(import.meta.resolve), Function.prototype, | ||
"prototype of resolve should be Function.prototype."); | ||
</script> | ||
|
||
<script type="module"> | ||
is(import.meta.resolve("http://example.com/"), "http://example.com/", | ||
"resolve specifiers with absolute path."); | ||
</script> | ||
|
||
<script type="module"> | ||
is(import.meta.resolve("./x"), (new URL("./x", import.meta.url)).href, | ||
"resolve specifiers with relative path."); | ||
</script> | ||
|
||
<script type="module"> | ||
assertThrowsTypeError(() => new import.meta.resolve("./x"), | ||
"import.meta.resolve is not a constructor."); | ||
</script> | ||
|
||
<script type="module"> | ||
// Fails to resolve the specifier should throw a TypeError. | ||
assertThrowsTypeError(() => import.meta.resolve("failed"), | ||
"import.meta.resolve should throw if fails to resolve"); | ||
</script> | ||
|
||
<script type="module"> | ||
for (const name of Reflect.ownKeys(import.meta)) { | ||
const desc = Object.getOwnPropertyDescriptor(import.meta, name); | ||
is(desc.writable, true, name + ".writable should be true."); | ||
is(desc.enumerable, true, name + ".enumerable should be true."); | ||
is(desc.configurable, true, name + ".configurable should be true."); | ||
} | ||
</script> | ||
</body> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 1 addition & 11 deletions
12
.../scripting-1/the-script-element/module/import-meta/import-meta-resolve-importmap.html.ini
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,2 @@ | ||
[import-meta-resolve-importmap.html] | ||
[import.meta.resolve() given an import mapped bare specifier] | ||
expected: FAIL | ||
|
||
[import.meta.resolve() given an import mapped URL-like specifier] | ||
expected: FAIL | ||
|
||
[Testing the ToString() step of import.meta.resolve() via import maps] | ||
expected: FAIL | ||
|
||
[import(import.meta.resolve(x)) can be different from import(x)] | ||
expected: FAIL | ||
prefs: [dom.importMaps.enabled:true] |
9 changes: 0 additions & 9 deletions
9
...ing-1/the-script-element/module/import-meta/import-meta-resolve-multiple-scripts.html.ini
This file was deleted.
Oops, something went wrong.