summaryrefslogtreecommitdiff
path: root/lib/repl.js
diff options
context:
space:
mode:
authorBradley Farias <bfarias@godaddy.com>2019-09-30 14:55:59 -0500
committerGuy Bedford <guybedford@gmail.com>2019-10-16 21:50:05 -0400
commita6b030d5ac2c4a2d34f6b9eb3f945d252a42843e (patch)
treedfd91dad91d60e90e39db3b5326d509c32a62f5f /lib/repl.js
parent1784b7fafac2755f870db3de9eb45a754b7a6477 (diff)
downloadnode-new-a6b030d5ac2c4a2d34f6b9eb3f945d252a42843e.tar.gz
module: refactor modules bootstrap
PR-URL: https://github.com/nodejs/node/pull/29937 Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'lib/repl.js')
-rw-r--r--lib/repl.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/repl.js b/lib/repl.js
index bce90a1860..88b0f56584 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -99,6 +99,7 @@ const {
} = internalBinding('contextify');
const history = require('internal/repl/history');
+const { setImmediate } = require('timers');
// Lazy-loaded.
let processTopLevelAwait;
@@ -338,11 +339,9 @@ function REPLServer(prompt,
script = vm.createScript(code, {
filename: file,
displayErrors: true,
- importModuleDynamically: experimentalModules ?
- async (specifier) => {
- return (await asyncESM.loaderPromise).import(specifier, pwd);
- } :
- undefined
+ importModuleDynamically: experimentalModules ? async (specifier) => {
+ return asyncESM.ESMLoader.import(specifier, pwd);
+ } : undefined
});
} catch (e) {
debug('parse error %j', code, e);
@@ -1080,7 +1079,11 @@ function complete(line, callback) {
// All this is only profitable if the nested REPL does not have a
// bufferedCommand.
if (!magic[kBufferedCommandSymbol]) {
- magic._domain.on('error', (err) => { throw err; });
+ magic._domain.on('error', (err) => {
+ setImmediate(() => {
+ throw err;
+ });
+ });
return magic.complete(line, callback);
}
}