From 66dccaf0cd9f749d6985e0db6cb41c4d40d4b73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20B=C3=B6hm?= Date: Thu, 13 Aug 2015 20:21:30 +0200 Subject: [PATCH] debugger: also exit when the repl emits 'exit' Exit the debug repl when repl emits 'exit' Refs: https://github.com/nodejs/node-v0.x-archive/issues/5637 Fixes: https://github.com/nodejs/node-v0.x-archive/issues/5631 PR-URL: https://github.com/nodejs/node/pull/2369 Reviewed-By: Colin Ihrig Reviewed-By: Jeremiah Senkpiel Reviewed-By: James M Snell --- lib/_debugger.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/_debugger.js b/lib/_debugger.js index 9f8fa26f2189c3..cbf7f7a5ed5397 100644 --- a/lib/_debugger.js +++ b/lib/_debugger.js @@ -1546,8 +1546,7 @@ Interface.prototype.repl = function() { var listeners = this.repl.rli.listeners('SIGINT').slice(0); this.repl.rli.removeAllListeners('SIGINT'); - // Exit debug repl on Ctrl + C - this.repl.rli.once('SIGINT', function() { + function exitDebugRepl() { // Restore all listeners process.nextTick(function() { listeners.forEach(function(listener) { @@ -1557,7 +1556,16 @@ Interface.prototype.repl = function() { // Exit debug repl self.exitRepl(); - }); + + self.repl.rli.removeListener('SIGINT', exitDebugRepl); + self.repl.removeListener('exit', exitDebugRepl); + } + + // Exit debug repl on SIGINT + this.repl.rli.on('SIGINT', exitDebugRepl); + + // Exit debug repl on repl exit + this.repl.on('exit', exitDebugRepl); // Set new this.repl.eval = this.debugEval.bind(this);