forked from mirrors/gecko-dev
Refactor the error message with the adding the information from the imported
module, for example:
// a.mjs
import { a } from "./b.mjs";
// b.mjs
const b = 1;
Originally the error message is "import not found: default", now it
becomes "The requested module: b.mjs doesn't provide an export named: a"
// c.mjs
import { c } from "./d.mjs";
// d.mjs
export * from "./d1.mjs";
export * from "./d2.mjs";
// d1.mjs
export const c = 1;
// d2.mjs
export const c = 2;
Originally the error message is "ambiguous import: c", now it becomes
"The requested module d.mjs contains ambiguous star export: c from
d1.mjs and d2.mjs"
Add another error message for circular import:
// e.mjs
export { e } from "f.mjs";
// f.mjs
export { e } from "e.mjs";
Originally it was "indirect export not found: e", now it is
"The request module: f.mjs contains circular import: e".
Differential Revision: https://phabricator.services.mozilla.com/D200345
45 lines
1.7 KiB
HTML
45 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset=utf-8>
|
|
<title>Test module import error message</title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script>
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
let count = 0;
|
|
|
|
window.onerror = function (event, src, lineno, colno, error) {
|
|
info("window.onerror: message: " + error.message);
|
|
info("window.onerror: src: " + src);
|
|
ok(error instanceof SyntaxError, "Should be a SyntaxError.");
|
|
|
|
if (src.match("no_indirect_export.mjs") ||
|
|
src.match("import_no_export.mjs")) {
|
|
ok(error.message.match("doesn't provide an export named"));
|
|
} else if(src.match("export_ambiguous.mjs") ||
|
|
src.match("import_ambiguous_export_star.mjs") ||
|
|
src.match("import_ambiguous_export.mjs") ||
|
|
src.match("import_ambiguous.mjs")) {
|
|
ok(error.message.match("contains ambiguous star export"));
|
|
} else if (src.match("import_circular_1.mjs")) {
|
|
ok(error.message.match("contains circular import"));
|
|
} else {
|
|
ok(false, "unknown src " + src);
|
|
}
|
|
count++;
|
|
};
|
|
|
|
function testLoaded() {
|
|
ok(count === 7, "Should have 7 SynaxErrors thrown.");
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
</script>
|
|
|
|
<script type="module" src="import_no_indirect_export.mjs"></script>
|
|
<script type="module" src="import_ambiguous_indirect_export.mjs"></script>
|
|
<script type="module" src="import_ambiguous_export_star.mjs"></script>
|
|
<script type="module" src="import_ambiguous_export.mjs"></script>
|
|
<script type="module" src="import_no_export.mjs"></script>
|
|
<script type="module" src="import_ambiguous.mjs"></script>
|
|
<script type="module" src="import_circular.mjs"></script>
|
|
<body onload='testLoaded()'></body>
|