Browse Source

repl: make tab completion work on non-objects

v0.8.7-release
Nathan Rajlich 13 years ago
committed by Ben Noordhuis
parent
commit
a118f21728
  1. 7
      lib/repl.js
  2. 9
      test/simple/test-repl-tab-complete.js

7
lib/repl.js

@ -523,8 +523,13 @@ REPLServer.prototype.complete = function(line, callback) {
}
// works for non-objects
try {
var p = Object.getPrototypeOf(obj);
var sentinel = 5;
var p;
if (typeof obj == 'object') {
p = Object.getPrototypeOf(obj);
} else {
p = obj.constructor ? obj.constructor.prototype : null;
}
while (p !== null) {
memberGroups.push(Object.getOwnPropertyNames(p));
p = Object.getPrototypeOf(p);

9
test/simple/test-repl-tab-complete.js

@ -180,3 +180,12 @@ testMe.complete('inner.o', function(error, data) {
assert.deepEqual(data, doesNotBreak);
});
putIn.run(['.clear']);
// make sure tab completion works on non-Objects
putIn.run([
'var str = "test";'
]);
testMe.complete('str.len', function(error, data) {
assert.deepEqual(data, [ [ 'str.length' ], 'str.len' ]);
});

Loading…
Cancel
Save