callback(null, result);
}
+On tab completion - `eval` will be called with `.scope` as an input string. It
+is expected to return an array of scope names to be used for the auto-completion.
+
Multiple REPLs may be started against the same running instance of io.js. Each
will share the same global object but will have unique I/O.
- `<ctrl>C` - Similar to the `.break` keyword. Terminates the current
command. Press twice on a blank line to forcibly exit.
- `<ctrl>D` - Similar to the `.exit` keyword.
+ - `<tab>` - Show both global and local(scope) variables
completionGroupsLoaded();
} else {
this.eval('.scope', this.context, 'repl', function(err, globals) {
- if (err || !globals) {
+ if (err || !globals || !Array.isArray(globals)) {
addStandardGlobals(completionGroups, filter);
} else if (Array.isArray(globals[0])) {
// Add grouped globals
--- /dev/null
+var assert = require('assert');
+var util = require('util');
+var repl = require('repl');
+var zlib = require('zlib');
+
+// just use builtin stream inherited from Duplex
+var putIn = zlib.createGzip();
+var testMe = repl.start('', putIn, function(cmd, context, filename, callback) {
+ callback(null, cmd);
+});
+
+testMe._domain.on('error', function (e) {
+ assert.fail();
+});
+
+testMe.complete('', function(err, results) {
+ assert.equal(err, null);
+});