summaryrefslogtreecommitdiff
path: root/lib/repl.js
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2017-12-30 03:22:01 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-01-04 21:21:22 +0100
commit11dda69a33e4e9bbaa9ed9913a8bc7e470c4bd72 (patch)
treef64331fcc4d17ceda4156bde67fb7b595383073a /lib/repl.js
parent80988f9322a1989f7fbd58855489fc75c14aabc3 (diff)
downloadandroid-node-v8-11dda69a33e4e9bbaa9ed9913a8bc7e470c4bd72.tar.gz
android-node-v8-11dda69a33e4e9bbaa9ed9913a8bc7e470c4bd72.tar.bz2
android-node-v8-11dda69a33e4e9bbaa9ed9913a8bc7e470c4bd72.zip
repl: refactor code for readability
PR-URL: https://github.com/nodejs/node/pull/17919 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Weijia Wang <starkwang@126.com> Reviewed-By: Khaidi Chu <i@2333.moe> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Lance Ball <lball@redhat.com>
Diffstat (limited to 'lib/repl.js')
-rw-r--r--lib/repl.js83
1 files changed, 26 insertions, 57 deletions
diff --git a/lib/repl.js b/lib/repl.js
index 19ea965f1c..20c1c4ee92 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -412,15 +412,10 @@ function REPLServer(prompt,
// Use stdin and stdout as the default streams if none were given
stream = process;
}
- if (stream.stdin && stream.stdout) {
- // We're given custom object with 2 streams, or the `process` object
- input = stream.stdin;
- output = stream.stdout;
- } else {
- // We're given a duplex readable/writable Stream, like a `net.Socket`
- input = stream;
- output = stream;
- }
+ // We're given a duplex readable/writable Stream, like a `net.Socket`
+ // or a custom object with 2 streams, or the `process` object
+ input = stream.stdin || stream;
+ output = stream.stdout || stream;
}
self.inputStream = input;
@@ -770,7 +765,7 @@ REPLServer.prototype.createContext = function() {
Object.defineProperty(context, 'console', {
configurable: true,
enumerable: true,
- get: () => _console
+ value: _console
});
var names = Object.getOwnPropertyNames(global);
@@ -1129,19 +1124,16 @@ function complete(line, callback) {
break;
}
}
- } catch (e) {
- // console.log("completion error walking prototype chain:" + e);
- }
+ } catch (e) {}
}
if (memberGroups.length) {
for (i = 0; i < memberGroups.length; i++) {
- completionGroups.push(memberGroups[i].map(function(member) {
- return expr + '.' + member;
- }));
+ completionGroups.push(
+ memberGroups[i].map((member) => `${expr}.${member}`));
}
if (filter) {
- filter = expr + '.' + filter;
+ filter = `${expr}.${filter}`;
}
}
@@ -1162,9 +1154,8 @@ function complete(line, callback) {
if (completionGroups.length && filter) {
var newCompletionGroups = [];
for (i = 0; i < completionGroups.length; i++) {
- group = completionGroups[i].filter(function(elem) {
- return elem.indexOf(filter) === 0;
- });
+ group = completionGroups[i]
+ .filter((elem) => elem.indexOf(filter) === 0);
if (group.length) {
newCompletionGroups.push(group);
}
@@ -1493,55 +1484,33 @@ function isCodeRecoverable(code) {
if (previous === '\\' && (stringLiteral || isRegExpLiteral)) {
current = null;
- continue;
- }
-
- if (stringLiteral) {
+ } else if (stringLiteral) {
if (stringLiteral === current) {
stringLiteral = null;
}
- continue;
- } else {
- if (isRegExpLiteral && current === '/') {
- isRegExpLiteral = false;
- continue;
- }
-
- if (isBlockComment && previous === '*' && current === '/') {
- isBlockComment = false;
- continue;
- }
-
- if (isSingleComment && current === '\n') {
- isSingleComment = false;
- continue;
- }
-
- if (isBlockComment || isRegExpLiteral || isSingleComment) continue;
-
+ } else if (isRegExpLiteral && current === '/') {
+ isRegExpLiteral = false;
+ } else if (isBlockComment && previous === '*' && current === '/') {
+ isBlockComment = false;
+ } else if (isSingleComment && current === '\n') {
+ isSingleComment = false;
+ } else if (!isBlockComment && !isRegExpLiteral && !isSingleComment) {
if (current === '/' && previous === '/') {
isSingleComment = true;
- continue;
- }
-
- if (previous === '/') {
+ } else if (previous === '/') {
if (current === '*') {
isBlockComment = true;
- } else if (
// Distinguish between a division operator and the start of a regex
// by examining the non-whitespace character that precedes the /
- [null, '(', '[', '{', '}', ';'].includes(prevTokenChar)
- ) {
+ } else if ([null, '(', '[', '{', '}', ';'].includes(prevTokenChar)) {
isRegExpLiteral = true;
}
- continue;
+ } else {
+ if (current.trim()) prevTokenChar = current;
+ if (current === '\'' || current === '"') {
+ stringLiteral = current;
+ }
}
-
- if (current.trim()) prevTokenChar = current;
- }
-
- if (current === '\'' || current === '"') {
- stringLiteral = current;
}
}