From b34a1e17850761f2edb91e9f588a78f83acd0c1c Mon Sep 17 00:00:00 2001 From: Zhenzhen Zhan Date: Sun, 11 Mar 2018 18:37:21 +0800 Subject: [PATCH] module: fix `e.stack` error when throwing undefined or null MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a test for module loading when throwing undefined or null. PR-URL: https://github.com/nodejs/node/pull/19282 Reviewed-By: Anna Henningsen Reviewed-By: Michaƫl Zasso Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: Jan Krems Reviewed-By: Ruben Bridgewater Reviewed-By: Tiancheng "Timothy" Gu --- lib/internal/modules/esm/module_job.js | 1 - test/es-module/test-esm-throw-undefined.mjs | 16 ++++++++++++++++ .../es-module-loaders/throw-undefined.mjs | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 test/es-module/test-esm-throw-undefined.mjs create mode 100644 test/fixtures/es-module-loaders/throw-undefined.mjs diff --git a/lib/internal/modules/esm/module_job.js b/lib/internal/modules/esm/module_job.js index 8dbeef78e63..8943ca8809f 100644 --- a/lib/internal/modules/esm/module_job.js +++ b/lib/internal/modules/esm/module_job.js @@ -105,7 +105,6 @@ class ModuleJob { try { module.evaluate(-1, false); } catch (e) { - e.stack; this.hadError = true; this.error = e; throw e; diff --git a/test/es-module/test-esm-throw-undefined.mjs b/test/es-module/test-esm-throw-undefined.mjs new file mode 100644 index 00000000000..87772817876 --- /dev/null +++ b/test/es-module/test-esm-throw-undefined.mjs @@ -0,0 +1,16 @@ +// Flags: --experimental-modules +/* eslint-disable node-core/required-modules */ +import common from '../common/index.js'; +import assert from 'assert'; + +async function doTest() { + await assert.rejects( + async () => { + await import('../fixtures/es-module-loaders/throw-undefined'); + }, + (e) => e === undefined + ); +} + +common.crashOnUnhandledRejection(); +doTest(); diff --git a/test/fixtures/es-module-loaders/throw-undefined.mjs b/test/fixtures/es-module-loaders/throw-undefined.mjs new file mode 100644 index 00000000000..f0622767674 --- /dev/null +++ b/test/fixtures/es-module-loaders/throw-undefined.mjs @@ -0,0 +1,3 @@ +'use strict'; + +throw undefined;