ignore undefined messages in the debugger repl
authorFedor Indutny <fedor.indutny@gmail.com>
Wed, 2 Nov 2011 22:38:38 +0000 (04:38 +0600)
committerRyan Dahl <ry@tinyclouds.org>
Wed, 2 Nov 2011 22:55:36 +0000 (15:55 -0700)
fixes #1995

doc/api/repl.markdown
lib/_debugger.js
lib/repl.js

index 1b8ce24..9e42466 100644 (file)
@@ -27,7 +27,7 @@ For example, you could add this to your bashrc file:
     alias node="env NODE_NO_READLINE=1 rlwrap node"
 
 
-### repl.start(prompt='> ', stream=process.stdin, eval=eval, useGlobal=false)
+### repl.start(prompt='> ', stream=process.stdin, eval=eval, useGlobal=false, ignoreUndefined=false)
 
 Starts a REPL with `prompt` as the prompt and `stream` for all I/O.  `prompt`
 is optional and defaults to `> `.  `stream` is optional and defaults to
@@ -36,6 +36,9 @@ is optional and defaults to `> `.  `stream` is optional and defaults to
 If `useGlobal` is set to true, then the repl will use the global object,
 instead of running scripts in a separate context.
 
+If `ignoreUndefined` is set to true, then the repl will not output return value
+of command if it's `undefined`.
+
 You can use your own `eval` function if it has following signature:
 
     function eval(cmd, callback) {
index 1269f56..a6bc213 100644 (file)
@@ -724,7 +724,7 @@ function Interface(stdin, stdout, args) {
   // Two eval modes are available: controlEval and debugEval
   // But controlEval is used by default
   this.repl = new repl.REPLServer('debug> ', streams,
-                                  this.controlEval.bind(this));
+                                  this.controlEval.bind(this), false, true);
 
   // Kill child process when repl closed or main process is dead
   this.repl.rli.addListener('close', function() {
index 6f58f76..bbe658a 100644 (file)
@@ -68,7 +68,7 @@ module.paths = require('module')._nodeModulePaths(module.filename);
 exports.writer = util.inspect;
 
 
-function REPLServer(prompt, stream, eval, useGlobal) {
+function REPLServer(prompt, stream, eval, useGlobal, ignoreUndefined) {
   var self = this;
 
   self.useGlobal = useGlobal;
@@ -224,7 +224,7 @@ function REPLServer(prompt, stream, eval, useGlobal) {
       self.bufferedCommand = '';
 
       // If we got any output - print it (if no error)
-      if (!e) {
+      if (!e && (!ignoreUndefined || ret !== undefined)) {
         self.context._ = ret;
         self.outputStream.write(exports.writer(ret) + '\n');
       }