summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/repl.js7
-rw-r--r--test/parallel/test-repl-tab-complete.js7
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/repl.js b/lib/repl.js
index 3b95bd7f29..3368b5997a 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -298,6 +298,7 @@ function REPLServer(prompt,
configurable: true
});
+ this.allowBlockingCompletions = !!options.allowBlockingCompletions;
this.useColors = !!options.useColors;
this._domain = options.domain || domain.create();
this.useGlobal = !!useGlobal;
@@ -1204,7 +1205,8 @@ function complete(line, callback) {
if (completeOn.length) {
filter = completeOn;
}
- } else if (RegExpPrototypeTest(requireRE, line)) {
+ } else if (RegExpPrototypeTest(requireRE, line) &&
+ this.allowBlockingCompletions) {
// require('...<Tab>')
const extensions = ObjectKeys(this.context.require.extensions);
const indexes = ArrayPrototypeMap(extensions,
@@ -1265,7 +1267,8 @@ function complete(line, callback) {
if (!subdir) {
ArrayPrototypePush(completionGroups, _builtinLibs);
}
- } else if (RegExpPrototypeTest(fsAutoCompleteRE, line)) {
+ } else if (RegExpPrototypeTest(fsAutoCompleteRE, line) &&
+ this.allowBlockingCompletions) {
[completionGroups, completeOn] = completeFSFunctions(line);
// Handle variable member lookup.
// We support simple chained expressions like the following (no function
diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js
index cc3dce1093..bfcf810ddd 100644
--- a/test/parallel/test-repl-tab-complete.js
+++ b/test/parallel/test-repl-tab-complete.js
@@ -51,7 +51,12 @@ function getNoResultsFunction() {
const works = [['inner.one'], 'inner.o'];
const putIn = new ArrayStream();
-const testMe = repl.start('', putIn);
+const testMe = repl.start({
+ prompt: '',
+ input: putIn,
+ output: process.stdout,
+ allowBlockingCompletions: true
+});
// Some errors are passed to the domain, but do not callback
testMe._domain.on('error', assert.ifError);