From 3d1661745302a18080cd8088b1571221e81eba3c Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Sat, 2 Apr 2016 21:58:19 -0700 Subject: [PATCH 1/4] repl: eval empty lines, fixing debugger repeat Tweak the better empty line handling introduced in #2163 so that empty lines are still passed to the eval function. This is required for the debugger to repeat the last command on an empty line. Fixes: https://github.com/nodejs/node/issues/6010 --- lib/repl.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index a43ff42d8ddb6b..4474ac3a35c975 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -421,7 +421,7 @@ function REPLServer(prompt, } } - if (!skipCatchall && (cmd || (!cmd && self.bufferedCommand))) { + if (!skipCatchall) { var evalCmd = self.bufferedCommand + cmd; if (/^\s*\{/.test(evalCmd) && /\}\s*$/.test(evalCmd)) { // It's confusing for `{ a : 1 }` to be interpreted as a block @@ -483,7 +483,7 @@ function REPLServer(prompt, // immediately. We don't have to print anything else. So, only when // the second argument to this function is there, print it. arguments.length === 2 && - (!self.ignoreUndefined || ret !== undefined)) { + (!(self.ignoreUndefined || evalCmd === '\n') || ret !== undefined)) { if (!self.underscoreAssigned) { self.last = ret; } From ada88acdeef3fffbfeabbe0c3105a2f9ad2885de Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Sun, 3 Apr 2016 19:10:56 -0700 Subject: [PATCH 2/4] test: update expectations in test-debugger-repl-term Matches current behaviour of Chrome devtools. PR-URL: https://github.com/nodejs/node/pull/6025 --- test/debugger/test-debugger-repl-term.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/debugger/test-debugger-repl-term.js b/test/debugger/test-debugger-repl-term.js index 6872f6ce2f9c72..1af9a46603969c 100644 --- a/test/debugger/test-debugger-repl-term.js +++ b/test/debugger/test-debugger-repl-term.js @@ -22,16 +22,16 @@ addTest('', [ /3/, /4/, /5/, /6/, /7/, ]); -// continue -addTest('c', [ - /debug>.*c/, +// out +addTest('o', [ + /debug>.*o/, /break in .*:12/, /10/, /11/, /12/, /13/, /14/ ]); -// should repeat continue -addTest('', [ - /debug>/, +// continue +addTest('c', [ + /debug>.*c/, /break in .*:5/, /3/, /4/, /5/, /6/, /7/, ]); From 0bf6b039a10bcc40eedde0673a2ff389059ff788 Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Sun, 3 Apr 2016 19:30:55 -0700 Subject: [PATCH 3/4] test: update expectations in test-debugger-repl-break-in-module Line numbers changed following comments cleanup in 3e1b1dd. PR-URL: https://github.com/nodejs/node/pull/6025 --- .../test-debugger-repl-break-in-module.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/debugger/test-debugger-repl-break-in-module.js b/test/debugger/test-debugger-repl-break-in-module.js index e439e08c24cd30..d855dc64f4aa25 100644 --- a/test/debugger/test-debugger-repl-break-in-module.js +++ b/test/debugger/test-debugger-repl-break-in-module.js @@ -7,7 +7,7 @@ repl.startDebugger('break-in-module/main.js'); // -- SET BREAKPOINT -- // Set breakpoint by file name + line number where the file is not loaded yet -repl.addTest('sb("mod.js", 23)', [ +repl.addTest('sb("mod.js", 2)', [ /Warning: script 'mod\.js' was not loaded yet\./, /1/, /2/, /3/, /4/, /5/, /6/ ]); @@ -20,8 +20,8 @@ repl.addTest('sb(")^$*+?}{|][(.js\\\\", 1)', [ // continue - the breakpoint should be triggered repl.addTest('c', [ - /break in .*[\\\/]mod\.js:23/, - /21/, /22/, /23/, /24/, /25/ + /break in .*[\\\/]mod\.js:2/, + /1/, /2/, /3/, /4/ ]); // -- RESTORE BREAKPOINT ON RESTART -- @@ -33,7 +33,7 @@ repl.addTest('restart', [].concat( ], repl.handshakeLines, [ - /Restoring breakpoint mod.js:23/, + /Restoring breakpoint mod.js:2/, /Warning: script 'mod\.js' was not loaded yet\./, /Restoring breakpoint \).*:\d+/, /Warning: script '\)[^']*' was not loaded yet\./ @@ -42,14 +42,14 @@ repl.addTest('restart', [].concat( // continue - the breakpoint should be triggered repl.addTest('c', [ - /break in .*[\\\/]mod\.js:23/, - /21/, /22/, /23/, /24/, /25/ + /break in .*[\\\/]mod\.js:2/, + /1/, /2/, /3/, /4/ ]); // -- CLEAR BREAKPOINT SET IN MODULE TO BE LOADED -- -repl.addTest('cb("mod.js", 23)', [ - /18/, /./, /./, /./, /./, /./, /./, /./, /26/ +repl.addTest('cb("mod.js", 2)', [ + /1/, /2/, /3/, /4/, /5/ ]); repl.addTest('c', [ From 4889017c1f4134ae66c480a9a130375e6dc22b68 Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Sun, 3 Apr 2016 19:38:26 -0700 Subject: [PATCH 4/4] test: update expectations in test-debugger-pid Expected line now includes a prefix. PR-URL: https://github.com/nodejs/node/pull/6025 --- test/debugger/test-debugger-pid.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/debugger/test-debugger-pid.js b/test/debugger/test-debugger-pid.js index 6a977d7cfa72e8..10fb493d6a8242 100644 --- a/test/debugger/test-debugger-pid.js +++ b/test/debugger/test-debugger-pid.js @@ -23,8 +23,8 @@ interfacer.stderr.on('data', onData); interfacer.on('line', function(line) { line = line.replace(/^(debug> *)+/, ''); - var expected = 'Target process: 655555 doesn\'t exist.'; - assert.ok(expected == line, 'Got unexpected line: ' + line); + var expected = /Target process: 655555 doesn\'t exist./; + assert.ok(line.match(expected), 'Got unexpected line: ' + line); }); interfacer.on('exit', function(code, signal) {