diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-09-23 19:38:12 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-12-06 02:10:58 +0100 |
commit | 6c40cb2aca89df4c7c0e3923d93024734dd49f2d (patch) | |
tree | ceb06cf66682bc843e8e0953cd8092a1179c46b5 /lib | |
parent | 51ccf1b5e90540a11c33866da15d4a7f52d7fddb (diff) | |
download | android-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.js | 25 |
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 = []; |