summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2019-11-02 12:10:53 +0100
committerMichaël Zasso <targos@protonmail.com>2019-11-09 09:30:36 +0100
commit8bb83f4d3d29506c9153ff8e025b076531648e1d (patch)
tree465d51926e41a7745e52d808827611b45834ef49 /test
parent0356746f50189368172d389ea1b69d8876cf329b (diff)
downloadandroid-node-v8-8bb83f4d3d29506c9153ff8e025b076531648e1d.tar.gz
android-node-v8-8bb83f4d3d29506c9153ff8e025b076531648e1d.tar.bz2
android-node-v8-8bb83f4d3d29506c9153ff8e025b076531648e1d.zip
esm: exit the process with an error if loader has an issue
Previously, this would trigger an unhandled rejection that the user cannot handle. Fixes: https://github.com/nodejs/node/issues/30205 PR-URL: https://github.com/nodejs/node/pull/30219 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/message/esm_loader_not_found.mjs3
-rw-r--r--test/message/esm_loader_not_found.out18
-rw-r--r--test/message/esm_loader_syntax_error.mjs3
-rw-r--r--test/message/esm_loader_syntax_error.out9
4 files changed, 33 insertions, 0 deletions
diff --git a/test/message/esm_loader_not_found.mjs b/test/message/esm_loader_not_found.mjs
new file mode 100644
index 0000000000..fd6f29ac53
--- /dev/null
+++ b/test/message/esm_loader_not_found.mjs
@@ -0,0 +1,3 @@
+// Flags: --experimental-modules --experimental-loader i-dont-exist
+import '../common/index.mjs';
+console.log('This should not be printed');
diff --git a/test/message/esm_loader_not_found.out b/test/message/esm_loader_not_found.out
new file mode 100644
index 0000000000..87161cdff5
--- /dev/null
+++ b/test/message/esm_loader_not_found.out
@@ -0,0 +1,18 @@
+(node:*) ExperimentalWarning: The ESM module loader is experimental.
+(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
+internal/modules/esm/default_resolve.js:*
+ let url = moduleWrapResolve(specifier, parentURL);
+ ^
+
+Error: Cannot find package 'i-dont-exist' imported from *
+ at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:*:*)
+ at Loader.resolve (internal/modules/esm/loader.js:*:*)
+ at Loader.getModuleJob (internal/modules/esm/loader.js:*:*)
+ at Loader.import (internal/modules/esm/loader.js:*:*)
+ at internal/process/esm_loader.js:*:*
+ at Object.initializeLoader (internal/process/esm_loader.js:*:*)
+ at runMainESM (internal/bootstrap/pre_execution.js:*:*)
+ at Function.Module.runMain (internal/modules/cjs/loader.js:*:*)
+ at internal/main/run_main_module.js:*:* {
+ code: 'ERR_MODULE_NOT_FOUND'
+}
diff --git a/test/message/esm_loader_syntax_error.mjs b/test/message/esm_loader_syntax_error.mjs
new file mode 100644
index 0000000000..7caad4056e
--- /dev/null
+++ b/test/message/esm_loader_syntax_error.mjs
@@ -0,0 +1,3 @@
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/syntax-error.mjs
+import '../common/index.mjs';
+console.log('This should not be printed');
diff --git a/test/message/esm_loader_syntax_error.out b/test/message/esm_loader_syntax_error.out
new file mode 100644
index 0000000000..9767a9c86c
--- /dev/null
+++ b/test/message/esm_loader_syntax_error.out
@@ -0,0 +1,9 @@
+(node:*) ExperimentalWarning: The ESM module loader is experimental.
+(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
+file://*/test/fixtures/es-module-loaders/syntax-error.mjs:2
+await async () => 0;
+^^^^^
+
+SyntaxError: Unexpected reserved word
+ at Loader.moduleStrategy (internal/modules/esm/translators.js:*:*)
+ at async link (internal/modules/esm/module_job.js:*:*)