summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-09-23 19:38:12 +0200
committerRuben Bridgewater <ruben@bridgewater.de>2019-12-06 02:10:58 +0100
commit6c40cb2aca89df4c7c0e3923d93024734dd49f2d (patch)
treeceb06cf66682bc843e8e0953cd8092a1179c46b5 /lib
parent51ccf1b5e90540a11c33866da15d4a7f52d7fddb (diff)
downloadandroid-node-v8-6c40cb2aca89df4c7c0e3923d93024734dd49f2d.tar.gz
android-node-v8-6c40cb2aca89df4c7c0e3923d93024734dd49f2d.tar.bz2
android-node-v8-6c40cb2aca89df4c7c0e3923d93024734dd49f2d.zip
repl: use better uncaught exceptions indicator
This switches "Thrown:" with "Uncaught" to outline clearer that the thrown error is not caught. PR-URL: https://github.com/nodejs/node/pull/29676 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/repl.js25
1 files changed, 21 insertions, 4 deletions
diff --git a/lib/repl.js b/lib/repl.js
index c1473588d3..55daf2f47f 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -552,11 +552,28 @@ function REPLServer(prompt,
});
} else {
if (errStack === '') {
- errStack = `Thrown: ${self.writer(e)}\n`;
- } else {
- const ln = errStack.endsWith('\n') ? '' : '\n';
- errStack = `Thrown:\n${errStack}${ln}`;
+ errStack = self.writer(e);
+ }
+ const lines = errStack.split(/(?<=\n)/);
+ let matched = false;
+
+ errStack = '';
+ for (const line of lines) {
+ if (!matched && /^\[?([A-Z][a-z0-9_]*)*Error/.test(line)) {
+ errStack += writer.options.breakLength >= line.length ?
+ `Uncaught ${line}` :
+ `Uncaught:\n${line}`;
+ matched = true;
+ } else {
+ errStack += line;
+ }
+ }
+ if (!matched) {
+ const ln = lines.length === 1 ? ' ' : ':\n';
+ errStack = `Uncaught${ln}${errStack}`;
}
+ // Normalize line endings.
+ errStack += errStack.endsWith('\n') ? '' : '\n';
top.outputStream.write(errStack);
top.clearBufferedCommand();
top.lines.level = [];