diff options
author | Bradley Farias <bfarias@godaddy.com> | 2019-09-30 14:55:59 -0500 |
---|---|---|
committer | Guy Bedford <guybedford@gmail.com> | 2019-10-16 21:50:05 -0400 |
commit | a6b030d5ac2c4a2d34f6b9eb3f945d252a42843e (patch) | |
tree | dfd91dad91d60e90e39db3b5326d509c32a62f5f /lib/repl.js | |
parent | 1784b7fafac2755f870db3de9eb45a754b7a6477 (diff) | |
download | node-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.js | 15 |
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); } } |