Browse Source

Lint

v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
5a05992155
  1. 104
      lib/_debugger.js
  2. 2
      lib/assert.js
  3. 30
      lib/fs.js
  4. 2
      lib/net.js
  5. 3
      lib/os.js
  6. 82
      lib/path.js
  7. 2
      lib/readline.js
  8. 6
      lib/repl.js
  9. 18
      lib/tls.js
  10. 2
      lib/url.js
  11. 6
      src/node.js

104
lib/_debugger.js

@ -5,7 +5,7 @@ var spawn = require('child_process').spawn;
exports.port = 5858; exports.port = 5858;
exports.start = function () { exports.start = function() {
var interface = new Interface(); var interface = new Interface();
}; };
@ -22,12 +22,12 @@ args.unshift('--debug-brk');
// Usage: // Usage:
// p = new Protocol(); // p = new Protocol();
// //
// p.onResponse = function (res) { // p.onResponse = function(res) {
// // do stuff with response from V8 // // do stuff with response from V8
// }; // };
// //
// socket.setEncoding('utf8'); // socket.setEncoding('utf8');
// socket.on('data', function (s) { // socket.on('data', function(s) {
// // Pass strings into the protocol // // Pass strings into the protocol
// p.execute(s); // p.execute(s);
// }); // });
@ -86,7 +86,7 @@ Protocol.prototype.execute = function(d) {
break; break;
default: default:
throw new Error("Unknown state"); throw new Error('Unknown state');
break; break;
} }
}; };
@ -121,13 +121,13 @@ function Client() {
}); });
protocol.onResponse = this._onResponse.bind(this); protocol.onResponse = this._onResponse.bind(this);
}; }
inherits(Client, net.Stream); inherits(Client, net.Stream);
exports.Client = Client; exports.Client = Client;
Client.prototype._addHandle = function(desc) { Client.prototype._addHandle = function(desc) {
if (typeof desc != 'object' || !desc.handle) throw new Error("bad type"); if (typeof desc != 'object' || !desc.handle) throw new Error('bad type');
this.handles[desc.handle] = desc; this.handles[desc.handle] = desc;
if (desc.type == 'script') { if (desc.type == 'script') {
@ -201,7 +201,7 @@ Client.prototype.req = function(req, cb) {
Client.prototype.reqVersion = function(cb) { Client.prototype.reqVersion = function(cb) {
this.req({ command: 'version' } , function (res) { this.req({ command: 'version' } , function(res) {
if (cb) cb(res.body.V8Version, res.running); if (cb) cb(res.body.V8Version, res.running);
}); });
}; };
@ -221,7 +221,7 @@ Client.prototype.reqEval = function(expression, cb) {
req.arguments.frame = this.currentFrame; req.arguments.frame = this.currentFrame;
} }
this.req(req, function (res) { this.req(req, function(res) {
console.error('reqEval res ', res.body); console.error('reqEval res ', res.body);
self._addHandle(res.body); self._addHandle(res.body);
if (cb) cb(res.body); if (cb) cb(res.body);
@ -232,7 +232,7 @@ Client.prototype.reqEval = function(expression, cb) {
// reqBacktrace(cb) // reqBacktrace(cb)
// TODO: from, to, bottom // TODO: from, to, bottom
Client.prototype.reqBacktrace = function(cb) { Client.prototype.reqBacktrace = function(cb) {
this.req({ command: 'backtrace' } , function (res) { this.req({ command: 'backtrace' } , function(res) {
if (cb) cb(res.body); if (cb) cb(res.body);
}); });
}; };
@ -256,7 +256,7 @@ Client.prototype.reqBacktrace = function(cb) {
// //
Client.prototype.reqScripts = function(cb) { Client.prototype.reqScripts = function(cb) {
var self = this; var self = this;
this.req({ command: 'scripts' } , function (res) { this.req({ command: 'scripts' } , function(res) {
for (var i = 0; i < res.body.length; i++) { for (var i = 0; i < res.body.length; i++) {
self._addHandle(res.body[i]); self._addHandle(res.body[i]);
} }
@ -266,13 +266,13 @@ Client.prototype.reqScripts = function(cb) {
Client.prototype.reqContinue = function(cb) { Client.prototype.reqContinue = function(cb) {
this.req({ command: 'continue' }, function (res) { this.req({ command: 'continue' }, function(res) {
if (cb) cb(res); if (cb) cb(res);
}); });
}; };
Client.prototype.listbreakpoints = function(cb) { Client.prototype.listbreakpoints = function(cb) {
this.req({ command: 'listbreakpoints' }, function (res) { this.req({ command: 'listbreakpoints' }, function(res) {
if (cb) cb(res); if (cb) cb(res);
}); });
}; };
@ -284,7 +284,7 @@ Client.prototype.step = function(action, count, cb) {
arguments: { stepaction: action, stepcount: count } arguments: { stepaction: action, stepcount: count }
}; };
this.req(req, function (res) { this.req(req, function(res) {
if (cb) cb(res); if (cb) cb(res);
}); });
}; };
@ -292,8 +292,8 @@ Client.prototype.step = function(action, count, cb) {
var helpMessage = "Commands: run, kill, print, step, next, " + var helpMessage = 'Commands: run, kill, print, step, next, ' +
"continue, scripts, backtrace, version, quit"; 'continue, scripts, backtrace, version, quit';
function SourceUnderline(sourceText, position) { function SourceUnderline(sourceText, position) {
if (!sourceText) return; if (!sourceText) return;
@ -342,7 +342,7 @@ function Interface() {
var client; var client;
var term; var term;
process.on('exit', function () { process.on('exit', function() {
self.killChild(); self.killChild();
}); });
@ -356,15 +356,15 @@ function Interface() {
this.quitting = false; this.quitting = false;
process.on('SIGINT', function () { process.on('SIGINT', function() {
self.handleSIGINT(); self.handleSIGINT();
}); });
term.on('SIGINT', function () { term.on('SIGINT', function() {
self.handleSIGINT(); self.handleSIGINT();
}); });
term.on('close', function () { term.on('close', function() {
self.tryQuit(); self.tryQuit();
}); });
@ -404,7 +404,7 @@ Interface.prototype.tryQuit = function() {
var self = this; var self = this;
if (self.child) { if (self.child) {
self.quitQuestion(function (yes) { self.quitQuestion(function(yes) {
if (yes) { if (yes) {
self.quit(); self.quit();
} else { } else {
@ -425,7 +425,7 @@ Interface.prototype.pause = function() {
Interface.prototype.resume = function() { Interface.prototype.resume = function() {
if (!this.paused) return false if (!this.paused) return false;
this.paused = false; this.paused = false;
this.stdin.resume(); this.stdin.resume();
this.term.resume(); this.term.resume();
@ -464,7 +464,7 @@ Interface.prototype.handleBreak = function(r) {
console.log(result); console.log(result);
if(!this.resume()) this.term.prompt(); if (!this.resume()) this.term.prompt();
}; };
@ -481,15 +481,15 @@ Interface.prototype.handleCommand = function(cmd) {
} else if (/^r(un)?/.test(cmd)) { } else if (/^r(un)?/.test(cmd)) {
self._lastCommand = null; self._lastCommand = null;
if (self.child) { if (self.child) {
self.restartQuestion(function (yes) { self.restartQuestion(function(yes) {
if (!yes) { if (!yes) {
self._lastCommand = null; self._lastCommand = null;
term.prompt(); term.prompt();
} else { } else {
console.log("restarting..."); console.log('restarting...');
self.killChild(); self.killChild();
// XXX need to wait a little bit for the restart to work? // XXX need to wait a little bit for the restart to work?
setTimeout(function () { setTimeout(function() {
self.trySpawn(); self.trySpawn();
}, 1000); }, 1000);
} }
@ -507,7 +507,7 @@ Interface.prototype.handleCommand = function(cmd) {
self.printNotConnected(); self.printNotConnected();
return; return;
} }
client.reqVersion(function (v) { client.reqVersion(function(v) {
console.log(v); console.log(v);
term.prompt(); term.prompt();
}); });
@ -517,7 +517,7 @@ Interface.prototype.handleCommand = function(cmd) {
self.printNotConnected(); self.printNotConnected();
return; return;
} }
client.listbreakpoints(function (res) { client.listbreakpoints(function(res) {
console.log(res); console.log(res);
term.prompt(); term.prompt();
}); });
@ -527,7 +527,7 @@ Interface.prototype.handleCommand = function(cmd) {
self.printNotConnected(); self.printNotConnected();
return; return;
} }
client.reqBacktrace(function (bt) { client.reqBacktrace(function(bt) {
if (/full/.test(cmd)) { if (/full/.test(cmd)) {
console.log(bt); console.log(bt);
} else if (bt.totalFrames == 0) { } else if (bt.totalFrames == 0) {
@ -558,7 +558,7 @@ Interface.prototype.handleCommand = function(cmd) {
} }
self.pause(); self.pause();
client.reqContinue(function () { client.reqContinue(function() {
self.resume(); self.resume();
}); });
@ -569,7 +569,7 @@ Interface.prototype.handleCommand = function(cmd) {
} }
// kill // kill
if (self.child) { if (self.child) {
self.killQuestion(function (yes) { self.killQuestion(function(yes) {
if (yes) { if (yes) {
self.killChild(); self.killChild();
} else { } else {
@ -585,7 +585,7 @@ Interface.prototype.handleCommand = function(cmd) {
self.printNotConnected(); self.printNotConnected();
return; return;
} }
client.step('next', 1, function (res) { client.step('next', 1, function(res) {
// Wait for break point. (disable raw mode?) // Wait for break point. (disable raw mode?)
}); });
@ -594,7 +594,7 @@ Interface.prototype.handleCommand = function(cmd) {
self.printNotConnected(); self.printNotConnected();
return; return;
} }
client.step('in', 1, function (res) { client.step('in', 1, function(res) {
// Wait for break point. (disable raw mode?) // Wait for break point. (disable raw mode?)
}); });
@ -605,11 +605,11 @@ Interface.prototype.handleCommand = function(cmd) {
} }
var i = cmd.indexOf(' '); var i = cmd.indexOf(' ');
if (i < 0) { if (i < 0) {
console.log("print [expression]"); console.log('print [expression]');
term.prompt(); term.prompt();
} else { } else {
cmd = cmd.slice(i); cmd = cmd.slice(i);
client.reqEval(cmd, function (res) { client.reqEval(cmd, function(res) {
if (res) { if (res) {
console.log(res.text); console.log(res.text);
} else { } else {
@ -633,13 +633,13 @@ Interface.prototype.handleCommand = function(cmd) {
Interface.prototype.yesNoQuestion = function(prompt, cb) { Interface.prototype.yesNoQuestion = function(prompt, cb) {
var self = this; var self = this;
self.resume(); self.resume();
this.term.question(prompt, function (answer) { this.term.question(prompt, function(answer) {
if (/^y(es)?$/i.test(answer)) { if (/^y(es)?$/i.test(answer)) {
cb(true); cb(true);
} else if (/^n(o)?$/i.test(answer)) { } else if (/^n(o)?$/i.test(answer)) {
cb(false); cb(false);
} else { } else {
console.log("Please answer y or n."); console.log('Please answer y or n.');
self.restartQuestion(cb); self.restartQuestion(cb);
} }
}); });
@ -647,18 +647,18 @@ Interface.prototype.yesNoQuestion = function(prompt, cb) {
Interface.prototype.restartQuestion = function(cb) { Interface.prototype.restartQuestion = function(cb) {
this.yesNoQuestion("The program being debugged has been started already.\n" + this.yesNoQuestion('The program being debugged has been started already.\n' +
"Start it from the beginning? (y or n) ", cb); 'Start it from the beginning? (y or n) ', cb);
}; };
Interface.prototype.killQuestion = function(cb) { Interface.prototype.killQuestion = function(cb) {
this.yesNoQuestion("Kill the program being debugged? (y or n) ", cb); this.yesNoQuestion('Kill the program being debugged? (y or n) ', cb);
}; };
Interface.prototype.quitQuestion = function(cb) { Interface.prototype.quitQuestion = function(cb) {
this.yesNoQuestion("A debugging session is active. Quit anyway? (y or n) ", this.yesNoQuestion('A debugging session is active. Quit anyway? (y or n) ',
cb); cb);
}; };
@ -688,35 +688,35 @@ Interface.prototype.trySpawn = function(cb) {
this.pause(); this.pause();
setTimeout(function () { setTimeout(function() {
process.stdout.write("connecting..."); process.stdout.write('connecting...');
var client = self.client = new Client(); var client = self.client = new Client();
client.connect(exports.port); client.connect(exports.port);
client.once('ready', function () { client.once('ready', function() {
process.stdout.write("ok\r\n"); process.stdout.write('ok\r\n');
// since we did debug-brk, we're hitting a break point immediately // since we did debug-brk, we're hitting a break point immediately
// continue before anything else. // continue before anything else.
client.reqContinue(function () { client.reqContinue(function() {
if (cb) cb(); if (cb) cb();
}); });
}); });
client.on('close', function () { client.on('close', function() {
console.log("\nprogram terminated"); console.log('\nprogram terminated');
self.client = null; self.client = null;
self.killChild(); self.killChild();
if (!self.quitting) self.term.prompt(); if (!self.quitting) self.term.prompt();
}); });
client.on('unhandledResponse', function (res) { client.on('unhandledResponse', function(res) {
console.log("\r\nunhandled res:"); console.log('\r\nunhandled res:');
console.log(res); console.log(res);
self.term.prompt(); self.term.prompt();
}); });
client.on('break', function (res) { client.on('break', function(res) {
self.handleBreak(res.body); self.handleBreak(res.body);
}); });
}, 100); }, 100);
@ -736,7 +736,9 @@ Interface.prototype.printScripts = function(displayNatives) {
for (var id in client.scripts) { for (var id in client.scripts) {
var script = client.scripts[id]; var script = client.scripts[id];
if (typeof script == 'object' && script.name) { if (typeof script == 'object' && script.name) {
if (displayNatives || script.name == client.currentScript || !script.isNative) { if (displayNatives ||
script.name == client.currentScript ||
!script.isNative) {
text += script.name == client.currentScript ? '* ' : ' '; text += script.name == client.currentScript ? '* ' : ' ';
var n = require('path').split(script.name); var n = require('path').split(script.name);
text += n[n.length - 1] + '\n'; text += n[n.length - 1] + '\n';

2
lib/assert.js

@ -249,7 +249,7 @@ function expectedException(actual, expected) {
return expected.test(actual); return expected.test(actual);
} else if (actual instanceof expected) { } else if (actual instanceof expected) {
return true; return true;
} else if ( expected.call({}, actual) === true ) { } else if (expected.call({}, actual) === true) {
return true; return true;
} }

30
lib/fs.js

@ -529,10 +529,14 @@ if (isWindows) {
var seenLinks = {}, var seenLinks = {},
knownHard = {}; knownHard = {};
var pos = 0, // current character position in p // current character position in p
current = "", // the partial path so far, including a trailing slash if any var pos = 0;
base = "", // the partial path without a trailing slash // the partial path so far, including a trailing slash if any
previous = ""; // the partial path scanned in the previous round, with slash var current = '';
// the partial path without a trailing slash
var base = '';
// the partial path scanned in the previous round, with slash
var previous = '';
// walk down the path, swapping out linked pathparts for their real // walk down the path, swapping out linked pathparts for their real
// values // values
@ -566,10 +570,10 @@ if (isWindows) {
// resolve the link, then start over // resolve the link, then start over
p = path.resolve(previous, seenLinks[id], p.slice(pos)); p = path.resolve(previous, seenLinks[id], p.slice(pos));
pos = 0; pos = 0;
previous = base = current = ""; previous = base = current = '';
} }
return p; return p;
}; };
@ -581,10 +585,14 @@ if (isWindows) {
var seenLinks = {}, var seenLinks = {},
knownHard = {}; knownHard = {};
var pos = 0, // current character position in p // current character position in p
current = "", // the partial path so far, including a trailing slash if any var pos = 0;
base = "", // the partial path without a trailing slash // the partial path so far, including a trailing slash if any
previous = ""; // the partial path scanned in the previous round, with slash var current = '';
// the partial path without a trailing slash
var base = '';
// the partial path scanned in the previous round, with slash
var previous = '';
// walk down the path, swapping out linked pathparts for their real // walk down the path, swapping out linked pathparts for their real
// values // values
@ -641,7 +649,7 @@ if (isWindows) {
// resolve the link, then start over // resolve the link, then start over
p = path.resolve(previous, target, p.slice(pos)); p = path.resolve(previous, target, p.slice(pos));
pos = 0; pos = 0;
previous = base = current = ""; previous = base = current = '';
return process.nextTick(LOOP); return process.nextTick(LOOP);
} }

2
lib/net.js

@ -320,7 +320,7 @@ Socket.prototype.write = function(data /* [encoding], [fd], [cb] */) {
this._writeQueueCallbacks[last] = cb; this._writeQueueCallbacks[last] = cb;
} else { } else {
// awful // awful
this._writeQueueCallbacks[last] = function () { this._writeQueueCallbacks[last] = function() {
this._writeQueueCallbacks[last](); this._writeQueueCallbacks[last]();
cb(); cb();
}; };

3
lib/os.js

@ -8,4 +8,5 @@ exports.totalmem = binding.getTotalMem;
exports.cpus = binding.getCPUs; exports.cpus = binding.getCPUs;
exports.type = binding.getOSType; exports.type = binding.getOSType;
exports.release = binding.getOSRelease; exports.release = binding.getOSRelease;
exports.isWindows = binding.isWindows; exports.isWindows = binding.isWindows;

82
lib/path.js

@ -2,9 +2,10 @@
var isWindows = process.platform === 'win32'; var isWindows = process.platform === 'win32';
// resolves . and .. elements in a path array with directory names // resolves . and .. elements in a path array with directory names there
// there must be no slashes, empty elements, or device names (c:\) in the array // must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish relative and absolute paths) // (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) { function normalizeArray(parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0 // if the path tries to go above the root, `up` ends up > 0
var up = 0; var up = 0;
@ -23,7 +24,7 @@ function normalizeArray(parts, allowAboveRoot) {
// if the path is allowed to go above the root, restore leading ..s // if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) { if (allowAboveRoot) {
for ( ; up--; up) { for (; up--; up) {
parts.unshift('..'); parts.unshift('..');
} }
} }
@ -38,18 +39,20 @@ if (isWindows) {
// windows version // windows version
var splitPathRe = /^(.+(?:[\\\/](?!$)|:)|[\\\/])?((?:.+?)?(\.[^.]*)?)$/; var splitPathRe = /^(.+(?:[\\\/](?!$)|:)|[\\\/])?((?:.+?)?(\.[^.]*)?)$/;
// Regex to split a windows path into three parts: [*, device, slash, tail] // Regex to split a windows path into three parts: [*, device, slash,
// windows-only // tail] windows-only
var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?(.*?)$/; var splitDeviceRe =
/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?(.*?)$/;
// path.resolve([from ...], to) // path.resolve([from ...], to)
// windows version // windows version
exports.resolve = function() { exports.resolve = function() {
// Prepend cwd to provided paths // Prepend cwd to provided paths
var paths = [process.cwd()].concat(Array.prototype.slice.call(arguments, 0)); var paths = [process.cwd()].concat(
Array.prototype.slice.call(arguments, 0));
var resolvedDevice = "", var resolvedDevice = '',
resolvedTail = "", resolvedTail = '',
resolvedAbsolute = false; resolvedAbsolute = false;
for (var i = paths.length; i >= 0; i--) { for (var i = paths.length; i >= 0; i--) {
@ -66,7 +69,9 @@ if (isWindows) {
isAbsolute = !!result[2] || isUnc, // UNC paths are always absolute isAbsolute = !!result[2] || isUnc, // UNC paths are always absolute
tail = result[3]; tail = result[3];
if (device && resolvedDevice && device.toLowerCase() !== resolvedDevice.toLowerCase()) { if (device &&
resolvedDevice &&
device.toLowerCase() !== resolvedDevice.toLowerCase()) {
// This path points to another device so it is not applicable // This path points to another device so it is not applicable
continue; continue;
} }
@ -92,7 +97,7 @@ if (isWindows) {
// Windows stores the current directories for 'other' drives // Windows stores the current directories for 'other' drives
// as hidden environment variables like =C:=c:\windows (literally) // as hidden environment variables like =C:=c:\windows (literally)
// var deviceCwd = os.getCwdForDrive(resolvedDevice); // var deviceCwd = os.getCwdForDrive(resolvedDevice);
var deviceCwd = ""; var deviceCwd = '';
// If there is no cwd set for the drive, it is at root // If there is no cwd set for the drive, it is at root
resolvedTail = deviceCwd + '\\' + resolvedTail; resolvedTail = deviceCwd + '\\' + resolvedTail;
@ -102,16 +107,22 @@ if (isWindows) {
// Replace slashes (in UNC share name) by backslashes // Replace slashes (in UNC share name) by backslashes
resolvedDevice = resolvedDevice.replace(/\//g, '\\'); resolvedDevice = resolvedDevice.replace(/\//g, '\\');
// At this point the path should be resolved to a full absolute path, but // At this point the path should be resolved to a full absolute path,
// handle relative paths to be safe (might happen when process.cwd() fails) // but handle relative paths to be safe (might happen when process.cwd()
// fails)
// Normalize the tail path // Normalize the tail path
resolvedTail = normalizeArray(resolvedTail.split(/[\\\/]+/).filter(function(p) {
function f(p) {
return !!p; return !!p;
}), !resolvedAbsolute).join('\\'); }
return (resolvedDevice + (resolvedAbsolute ? '\\' : '') + resolvedTail) || '.'; resolvedTail = normalizeArray(resolvedTail.split(/[\\\/]+/).filter(f),
} !resolvedAbsolute).join('\\');
return (resolvedDevice + (resolvedAbsolute ? '\\' : '') + resolvedTail) ||
'.';
};
// windows version // windows version
exports.normalize = function(path) { exports.normalize = function(path) {
@ -128,21 +139,23 @@ if (isWindows) {
}), !isAbsolute).join('\\'); }), !isAbsolute).join('\\');
if (!tail && !isAbsolute) { if (!tail && !isAbsolute) {
tail = '.' tail = '.';
} }
if (tail && trailingSlash) { if (tail && trailingSlash) {
tail += '\\' tail += '\\';
} }
return device + (isAbsolute ? '\\' : '') + tail; return device + (isAbsolute ? '\\' : '') + tail;
} };
// windows version // windows version
exports.join = function() { exports.join = function() {
var paths = Array.prototype.slice.call(arguments, 0).filter(function(p) { function f(p) {
return p && typeof p === 'string'; return p && typeof p === 'string';
}), }
joined = paths.join('\\');
var paths = Array.prototype.slice.call(arguments, 0).filter(f);
var joined = paths.join('\\');
// Make sure that the joined path doesn't start with two slashes // Make sure that the joined path doesn't start with two slashes
// - it will be mistaken for an unc path by normalize() - // - it will be mistaken for an unc path by normalize() -
@ -152,7 +165,7 @@ if (isWindows) {
} }
return exports.normalize(joined); return exports.normalize(joined);
} };
} else /* posix */ { } else /* posix */ {
@ -165,9 +178,10 @@ if (isWindows) {
// posix version // posix version
exports.resolve = function() { exports.resolve = function() {
// Prepend cwd to provided paths // Prepend cwd to provided paths
var paths = [process.cwd()].concat(Array.prototype.slice.call(arguments, 0)); var paths = [process.cwd()].concat(
Array.prototype.slice.call(arguments, 0));
var resolvedPath = "", var resolvedPath = '',
resolvedAbsolute = false; resolvedAbsolute = false;
for (var i = paths.length; i >= 0 && !resolvedAbsolute; i--) { for (var i = paths.length; i >= 0 && !resolvedAbsolute; i--) {
@ -189,7 +203,7 @@ if (isWindows) {
}), !resolvedAbsolute).join('/'); }), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
} };
// path.normalize(path) // path.normalize(path)
// posix version // posix version
@ -203,23 +217,23 @@ if (isWindows) {
}), !isAbsolute).join('/'); }), !isAbsolute).join('/');
if (!path && !isAbsolute) { if (!path && !isAbsolute) {
path = '.' path = '.';
} }
if (path && trailingSlash) { if (path && trailingSlash) {
path += '/'; path += '/';
} }
return (isAbsolute ? '/' : '') + path; return (isAbsolute ? '/' : '') + path;
} };
// posix version // posix version
exports.join = function() { exports.join = function() {
var paths = Array.prototype.slice.call(arguments, 0); var paths = Array.prototype.slice.call(arguments, 0);
return exports.normalize(paths.filter(function(p, index) { return exports.normalize(paths.filter(function(p, index) {
return p && typeof p === 'string' return p && typeof p === 'string';
}).join('/')); }).join('/'));
} };
} }
@ -227,7 +241,7 @@ exports.dirname = function(path) {
var dir = splitPathRe.exec(path)[1] || ''; var dir = splitPathRe.exec(path)[1] || '';
if (!dir) { if (!dir) {
// No dirname // No dirname
return '.' return '.';
} else if (dir.length === 1 || } else if (dir.length === 1 ||
(isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {
// It is just a slash or a drive letter with a slash // It is just a slash or a drive letter with a slash

2
lib/readline.js

@ -109,7 +109,7 @@ Interface.prototype._onLine = function(line) {
var cb = this._questionCallback; var cb = this._questionCallback;
this._questionCallback = null; this._questionCallback = null;
this.setPrompt(this._oldPrompt); this.setPrompt(this._oldPrompt);
cb(line) cb(line);
} else { } else {
this.emit('line', line); this.emit('line', line);
} }

6
lib/repl.js

@ -128,9 +128,11 @@ function REPLServer(prompt, stream) {
try { try {
// First we attempt to eval as expression with parens. // First we attempt to eval as expression with parens.
// This catches '{a : 1}' properly. // This catches '{a : 1}' properly.
ret = vm.runInContext('(' + self.bufferedCommand + ')', context, 'repl'); ret = vm.runInContext('(' + self.bufferedCommand + ')',
context,
'repl');
if (typeof ret !== 'function') success = true; if (typeof ret !== 'function') success = true;
} catch (e) { } catch (e) {
success = false; success = false;
} }

18
lib/tls.js

@ -16,15 +16,14 @@ if (process.env.NODE_DEBUG && /tls/.test(process.env.NODE_DEBUG)) {
var Connection = null; var Connection = null;
try { try {
Connection = process.binding('crypto').Connection; Connection = process.binding('crypto').Connection;
} } catch (e) {
catch (e) {
throw new Error('node.js not compiled with openssl crypto support.'); throw new Error('node.js not compiled with openssl crypto support.');
} }
// Base class of both CleartextStream and EncryptedStream // Base class of both CleartextStream and EncryptedStream
function CryptoStream (pair) { function CryptoStream(pair) {
stream.Stream.call(this); stream.Stream.call(this);
this.pair = pair; this.pair = pair;
@ -82,8 +81,8 @@ CryptoStream.prototype.setTimeout = function(n) {
}; };
function parseCertString (s) { // EG '/C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=ca1/emailAddress=ry@clouds.org'
// EG '/C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=ca1/emailAddress=ry@tinyclouds.org' function parseCertString(s) {
var out = {}; var out = {};
var parts = s.split('/'); var parts = s.split('/');
// Note: can always skip the first one. // Note: can always skip the first one.
@ -267,7 +266,7 @@ CryptoStream.prototype._suck = function() {
}; };
function CleartextStream (pair) { function CleartextStream(pair) {
CryptoStream.call(this, pair); CryptoStream.call(this, pair);
} }
util.inherits(CleartextStream, CryptoStream); util.inherits(CleartextStream, CryptoStream);
@ -286,7 +285,7 @@ CleartextStream.prototype._blower = function(pool, offset, length) {
}; };
function EncryptedStream (pair) { function EncryptedStream(pair) {
CryptoStream.call(this, pair); CryptoStream.call(this, pair);
} }
util.inherits(EncryptedStream, CryptoStream); util.inherits(EncryptedStream, CryptoStream);
@ -380,8 +379,7 @@ exports.createSecurePair = function(credentials,
/** /* Attempt to cycle OpenSSLs buffers in various directions.
* Attempt to cycle OpenSSLs buffers in various directions.
* *
* An SSL Connection can be viewed as four separate piplines, * An SSL Connection can be viewed as four separate piplines,
* interacting with one has no connection to the behavoir of * interacting with one has no connection to the behavoir of

2
lib/url.js

@ -305,7 +305,7 @@ function urlResolveObject(source, relative) {
// if the path is allowed to go above the root, restore leading ..s // if the path is allowed to go above the root, restore leading ..s
if (!mustEndAbs && !removeAllDots) { if (!mustEndAbs && !removeAllDots) {
for ( ; up--; up) { for (; up--; up) {
srcPath.unshift('..'); srcPath.unshift('..');
} }
} }

6
src/node.js

@ -132,7 +132,11 @@
var path = requireNative('path'); var path = requireNative('path');
var modulePaths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; var modulePaths = [path.resolve(process.execPath,
'..',
'..',
'lib',
'node')];
if (process.env['HOME']) { if (process.env['HOME']) {
modulePaths.unshift(path.resolve(process.env['HOME'], '.node_libraries')); modulePaths.unshift(path.resolve(process.env['HOME'], '.node_libraries'));

Loading…
Cancel
Save