lint
This commit is contained in:
parent
e232f6e735
commit
dd53ceebe4
@ -7,22 +7,22 @@ function Stream() {
|
|||||||
util.inherits(Stream, events.EventEmitter);
|
util.inherits(Stream, events.EventEmitter);
|
||||||
exports.Stream = Stream;
|
exports.Stream = Stream;
|
||||||
|
|
||||||
Stream.prototype.pipe = function (dest, options) {
|
Stream.prototype.pipe = function(dest, options) {
|
||||||
var source = this;
|
var source = this;
|
||||||
|
|
||||||
function ondata (chunk) {
|
function ondata(chunk) {
|
||||||
if (dest.writable) {
|
if (dest.writable) {
|
||||||
if (false === dest.write(chunk)) source.pause();
|
if (false === dest.write(chunk)) source.pause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source.on("data", ondata);
|
source.on('data', ondata);
|
||||||
|
|
||||||
function ondrain () {
|
function ondrain() {
|
||||||
if (source.readable) source.resume();
|
if (source.readable) source.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
dest.on("drain", ondrain);
|
dest.on('drain', ondrain);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the 'end' option is not supplied, dest.end() will be called when
|
* If the 'end' option is not supplied, dest.end() will be called when
|
||||||
@ -30,14 +30,14 @@ Stream.prototype.pipe = function (dest, options) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (!options || options.end !== false) {
|
if (!options || options.end !== false) {
|
||||||
function onend () {
|
function onend() {
|
||||||
dest.end();
|
dest.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
source.on("end", onend);
|
source.on('end', onend);
|
||||||
}
|
}
|
||||||
|
|
||||||
dest.on('close', function () {
|
dest.on('close', function() {
|
||||||
source.removeListener('data', ondata);
|
source.removeListener('data', ondata);
|
||||||
dest.removeListener('drain', ondrain);
|
dest.removeListener('drain', ondrain);
|
||||||
source.removeListener('end', onend);
|
source.removeListener('end', onend);
|
||||||
@ -49,22 +49,22 @@ Stream.prototype.pipe = function (dest, options) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (!source.pause) {
|
if (!source.pause) {
|
||||||
source.pause = function () {
|
source.pause = function() {
|
||||||
source.emit("pause");
|
source.emit('pause');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!source.resume) {
|
if (!source.resume) {
|
||||||
source.resume = function () {
|
source.resume = function() {
|
||||||
source.emit("resume");
|
source.emit('resume');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
dest.on("pause", function () {
|
dest.on('pause', function() {
|
||||||
source.pause();
|
source.pause();
|
||||||
});
|
});
|
||||||
|
|
||||||
dest.on("resume", function () {
|
dest.on('resume', function() {
|
||||||
if (source.readable) source.resume();
|
if (source.readable) source.resume();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
var StringDecoder = exports.StringDecoder = function (encoding) {
|
var StringDecoder = exports.StringDecoder = function(encoding) {
|
||||||
this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/,'');
|
this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
|
||||||
if (this.encoding === 'utf8') {
|
if (this.encoding === 'utf8') {
|
||||||
this.charBuffer = new Buffer(4);
|
this.charBuffer = new Buffer(4);
|
||||||
this.charReceived = 0;
|
this.charReceived = 0;
|
||||||
@ -8,7 +8,7 @@ var StringDecoder = exports.StringDecoder = function (encoding) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
StringDecoder.prototype.write = function (buffer) {
|
StringDecoder.prototype.write = function(buffer) {
|
||||||
// If not utf8...
|
// If not utf8...
|
||||||
if (this.encoding !== 'utf8') {
|
if (this.encoding !== 'utf8') {
|
||||||
return buffer.toString(this.encoding);
|
return buffer.toString(this.encoding);
|
||||||
@ -18,9 +18,9 @@ StringDecoder.prototype.write = function (buffer) {
|
|||||||
// if our last write ended with an incomplete multibyte character
|
// if our last write ended with an incomplete multibyte character
|
||||||
if (this.charLength) {
|
if (this.charLength) {
|
||||||
// determine how many remaining bytes this buffer has to offer for this char
|
// determine how many remaining bytes this buffer has to offer for this char
|
||||||
var i = (buffer.length >= this.charLength - this.charReceived)
|
var i = (buffer.length >= this.charLength - this.charReceived) ?
|
||||||
? this.charLength - this.charReceived
|
this.charLength - this.charReceived :
|
||||||
: buffer.length;
|
buffer.length;
|
||||||
|
|
||||||
// add the new bytes to the char buffer
|
// add the new bytes to the char buffer
|
||||||
buffer.copy(this.charBuffer, this.charReceived, 0, i);
|
buffer.copy(this.charBuffer, this.charReceived, 0, i);
|
||||||
@ -46,7 +46,8 @@ StringDecoder.prototype.write = function (buffer) {
|
|||||||
// determine how many bytes we have to check at the end of this buffer
|
// determine how many bytes we have to check at the end of this buffer
|
||||||
var i = (buffer.length >= 3) ? 3 : buffer.length;
|
var i = (buffer.length >= 3) ? 3 : buffer.length;
|
||||||
|
|
||||||
// figure out if one of the last i bytes of our buffer announces an incomplete char
|
// Figure out if one of the last i bytes of our buffer announces an
|
||||||
|
// incomplete char.
|
||||||
for (; i > 0; i--) {
|
for (; i > 0; i--) {
|
||||||
c = buffer[buffer.length - i];
|
c = buffer[buffer.length - i];
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
var util = require("util");
|
var util = require('util');
|
||||||
|
|
||||||
var sysWarning;
|
var sysWarning;
|
||||||
if (!sysWarning) {
|
if (!sysWarning) {
|
||||||
sysWarning = "The 'sys' module is now called 'util'. It should have a similar interface.";
|
sysWarning = 'The "sys" module is now called "util". ' +
|
||||||
|
'It should have a similar interface.';
|
||||||
// Uncomment in 2011
|
// Uncomment in 2011
|
||||||
//util.error(sysWarning);
|
//util.error(sysWarning);
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,14 @@ var assert = process.assert;
|
|||||||
* To enable debug statements for the timers do NODE_DEBUG=8 ./node script.js
|
* To enable debug statements for the timers do NODE_DEBUG=8 ./node script.js
|
||||||
*/
|
*/
|
||||||
var debugLevel = parseInt(process.env.NODE_DEBUG, 16);
|
var debugLevel = parseInt(process.env.NODE_DEBUG, 16);
|
||||||
function debug () {
|
var debug;
|
||||||
if (debugLevel & 0x8) {
|
if (debugLevel & 0x8) {
|
||||||
require('util').error.apply(this, arguments);
|
debug = function() { require('util').error.apply(this, arguments); };
|
||||||
}
|
} else {
|
||||||
|
debug = function() { };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// IDLE TIMEOUTS
|
// IDLE TIMEOUTS
|
||||||
//
|
//
|
||||||
// Because often many sockets will have the same idle timeout we will not
|
// Because often many sockets will have the same idle timeout we will not
|
||||||
@ -25,14 +27,14 @@ function debug () {
|
|||||||
var lists = {};
|
var lists = {};
|
||||||
|
|
||||||
// show the most idle item
|
// show the most idle item
|
||||||
function peek (list) {
|
function peek(list) {
|
||||||
if (list._idlePrev == list) return null;
|
if (list._idlePrev == list) return null;
|
||||||
return list._idlePrev;
|
return list._idlePrev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// remove the most idle item from the list
|
// remove the most idle item from the list
|
||||||
function shift (list) {
|
function shift(list) {
|
||||||
var first = list._idlePrev;
|
var first = list._idlePrev;
|
||||||
remove(first);
|
remove(first);
|
||||||
return first;
|
return first;
|
||||||
@ -40,14 +42,14 @@ function shift (list) {
|
|||||||
|
|
||||||
|
|
||||||
// remove a item from its list
|
// remove a item from its list
|
||||||
function remove (item) {
|
function remove(item) {
|
||||||
item._idleNext._idlePrev = item._idlePrev;
|
item._idleNext._idlePrev = item._idlePrev;
|
||||||
item._idlePrev._idleNext = item._idleNext;
|
item._idlePrev._idleNext = item._idleNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// remove a item from its list and place at the end.
|
// remove a item from its list and place at the end.
|
||||||
function append (list, item) {
|
function append(list, item) {
|
||||||
item._idleNext = list._idleNext;
|
item._idleNext = list._idleNext;
|
||||||
list._idleNext._idlePrev = item;
|
list._idleNext._idlePrev = item;
|
||||||
item._idlePrev = list;
|
item._idlePrev = list;
|
||||||
@ -57,7 +59,7 @@ function append (list, item) {
|
|||||||
|
|
||||||
// the main function - creates lists on demand and the watchers associated
|
// the main function - creates lists on demand and the watchers associated
|
||||||
// with them.
|
// with them.
|
||||||
function insert (item, msecs) {
|
function insert(item, msecs) {
|
||||||
item._idleStart = new Date();
|
item._idleStart = new Date();
|
||||||
item._idleTimeout = msecs;
|
item._idleTimeout = msecs;
|
||||||
|
|
||||||
@ -74,18 +76,18 @@ function insert (item, msecs) {
|
|||||||
|
|
||||||
lists[msecs] = list;
|
lists[msecs] = list;
|
||||||
|
|
||||||
list.callback = function () {
|
list.callback = function() {
|
||||||
debug('timeout callback ' + msecs);
|
debug('timeout callback ' + msecs);
|
||||||
// TODO - don't stop and start the watcher all the time.
|
// TODO - don't stop and start the watcher all the time.
|
||||||
// just set its repeat
|
// just set its repeat
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
debug("now: " + now);
|
debug('now: ' + now);
|
||||||
var first;
|
var first;
|
||||||
while (first = peek(list)) {
|
while (first = peek(list)) {
|
||||||
var diff = now - first._idleStart;
|
var diff = now - first._idleStart;
|
||||||
if (diff < msecs) {
|
if (diff < msecs) {
|
||||||
list.again(msecs - diff);
|
list.again(msecs - diff);
|
||||||
debug(msecs + ' list wait because diff is ' + diff);
|
debug(msecs + ' list wait because diff is ' + diff);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
remove(first);
|
remove(first);
|
||||||
@ -109,7 +111,7 @@ function insert (item, msecs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var unenroll = exports.unenroll = function (item) {
|
var unenroll = exports.unenroll = function(item) {
|
||||||
if (item._idleNext) {
|
if (item._idleNext) {
|
||||||
remove(item);
|
remove(item);
|
||||||
|
|
||||||
@ -125,7 +127,7 @@ var unenroll = exports.unenroll = function (item) {
|
|||||||
|
|
||||||
|
|
||||||
// Does not start the time, just sets up the members needed.
|
// Does not start the time, just sets up the members needed.
|
||||||
exports.enroll = function (item, msecs) {
|
exports.enroll = function(item, msecs) {
|
||||||
// if this item was already in a list somewhere
|
// if this item was already in a list somewhere
|
||||||
// then we should unenroll it from that
|
// then we should unenroll it from that
|
||||||
if (item._idleNext) unenroll(item);
|
if (item._idleNext) unenroll(item);
|
||||||
@ -137,7 +139,7 @@ exports.enroll = function (item, msecs) {
|
|||||||
|
|
||||||
// call this whenever the item is active (not idle)
|
// call this whenever the item is active (not idle)
|
||||||
// it will reset its timeout.
|
// it will reset its timeout.
|
||||||
exports.active = function (item) {
|
exports.active = function(item) {
|
||||||
var msecs = item._idleTimeout;
|
var msecs = item._idleTimeout;
|
||||||
if (msecs >= 0) {
|
if (msecs >= 0) {
|
||||||
var list = lists[msecs];
|
var list = lists[msecs];
|
||||||
@ -162,7 +164,7 @@ exports.active = function (item) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
exports.setTimeout = function (callback, after) {
|
exports.setTimeout = function(callback, after) {
|
||||||
var timer;
|
var timer;
|
||||||
|
|
||||||
if (after <= 0) {
|
if (after <= 0) {
|
||||||
@ -186,7 +188,7 @@ exports.setTimeout = function (callback, after) {
|
|||||||
*/
|
*/
|
||||||
if (arguments.length > 2) {
|
if (arguments.length > 2) {
|
||||||
var args = Array.prototype.slice.call(arguments, 2);
|
var args = Array.prototype.slice.call(arguments, 2);
|
||||||
var c = function () {
|
var c = function() {
|
||||||
callback.apply(timer, args);
|
callback.apply(timer, args);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -207,7 +209,7 @@ exports.setTimeout = function (callback, after) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.clearTimeout = function (timer) {
|
exports.clearTimeout = function(timer) {
|
||||||
if (timer && (timer.callback || timer._onTimeout)) {
|
if (timer && (timer.callback || timer._onTimeout)) {
|
||||||
timer.callback = timer._onTimeout = null;
|
timer.callback = timer._onTimeout = null;
|
||||||
exports.unenroll(timer);
|
exports.unenroll(timer);
|
||||||
@ -216,12 +218,12 @@ exports.clearTimeout = function (timer) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.setInterval = function (callback, repeat) {
|
exports.setInterval = function(callback, repeat) {
|
||||||
var timer = new Timer();
|
var timer = new Timer();
|
||||||
|
|
||||||
if (arguments.length > 2) {
|
if (arguments.length > 2) {
|
||||||
var args = Array.prototype.slice.call(arguments, 2);
|
var args = Array.prototype.slice.call(arguments, 2);
|
||||||
timer.callback = function () {
|
timer.callback = function() {
|
||||||
callback.apply(timer, args);
|
callback.apply(timer, args);
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@ -233,7 +235,7 @@ exports.setInterval = function (callback, repeat) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.clearInterval = function (timer) {
|
exports.clearInterval = function(timer) {
|
||||||
if (timer instanceof Timer) {
|
if (timer instanceof Timer) {
|
||||||
timer.callback = null;
|
timer.callback = null;
|
||||||
timer.stop();
|
timer.stop();
|
||||||
|
33
lib/tls.js
33
lib/tls.js
@ -36,12 +36,12 @@ var inherits = require('util').inherits;
|
|||||||
// TODO:
|
// TODO:
|
||||||
// cleartext.credentials (by mirroring from pair object)
|
// cleartext.credentials (by mirroring from pair object)
|
||||||
// cleartext.getCertificate() (by mirroring from pair.credentials.context)
|
// cleartext.getCertificate() (by mirroring from pair.credentials.context)
|
||||||
function Server ( /* [options], listener */) {
|
function Server(/* [options], listener */) {
|
||||||
var options, listener;
|
var options, listener;
|
||||||
if (typeof arguments[0] == "object") {
|
if (typeof arguments[0] == 'object') {
|
||||||
options = arguments[0];
|
options = arguments[0];
|
||||||
listener = arguments[1];
|
listener = arguments[1];
|
||||||
} else if (typeof arguments[0] == "function") {
|
} else if (typeof arguments[0] == 'function') {
|
||||||
options = {};
|
options = {};
|
||||||
listener = arguments[0];
|
listener = arguments[0];
|
||||||
}
|
}
|
||||||
@ -51,10 +51,9 @@ function Server ( /* [options], listener */) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
// constructor call
|
// constructor call
|
||||||
net.Server.call(this, function (socket) {
|
net.Server.call(this, function(socket) {
|
||||||
var creds = crypto.createCredentials({ key: self.key,
|
var creds = crypto.createCredentials(
|
||||||
cert: self.cert,
|
{ key: self.key, cert: self.cert, ca: self.ca });
|
||||||
ca: self.ca });
|
|
||||||
creds.context.setCiphers('RC4-SHA:AES128-SHA:AES256-SHA');
|
creds.context.setCiphers('RC4-SHA:AES128-SHA:AES256-SHA');
|
||||||
|
|
||||||
var pair = crypto.createPair(creds,
|
var pair = crypto.createPair(creds,
|
||||||
@ -63,14 +62,14 @@ function Server ( /* [options], listener */) {
|
|||||||
pair.encrypted.pipe(socket);
|
pair.encrypted.pipe(socket);
|
||||||
socket.pipe(pair.encrypted);
|
socket.pipe(pair.encrypted);
|
||||||
|
|
||||||
pair.on('secure', function () {
|
pair.on('secure', function() {
|
||||||
var verifyError = pair._ssl.verifyError();
|
var verifyError = pair._ssl.verifyError();
|
||||||
|
|
||||||
if (verifyError) {
|
if (verifyError) {
|
||||||
if (self.unauthorizedPeers) {
|
if (self.unauthorizedPeers) {
|
||||||
self.emit('unauthorized', pair.cleartext, verifyError);
|
self.emit('unauthorized', pair.cleartext, verifyError);
|
||||||
} else {
|
} else {
|
||||||
console.error("REJECT PEER. verify error: %s", verifyError);
|
console.error('REJECT PEER. verify error: %s', verifyError);
|
||||||
socket.destroy();
|
socket.destroy();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -78,15 +77,9 @@ function Server ( /* [options], listener */) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
pair.on('error', function (e) {
|
pair.on('error', function(e) {
|
||||||
console.log('pair got error: ' + e);
|
console.log('pair got error: ' + e);
|
||||||
|
self.emit('error', e);
|
||||||
// TODO better way to get error code.
|
|
||||||
if (/no shared cipher/.test(e.message)) {
|
|
||||||
;
|
|
||||||
} else {
|
|
||||||
self.emit('error', e);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
pair.cleartext.on('error', function(err) {
|
pair.cleartext.on('error', function(err) {
|
||||||
@ -110,13 +103,13 @@ function Server ( /* [options], listener */) {
|
|||||||
|
|
||||||
inherits(Server, net.Server);
|
inherits(Server, net.Server);
|
||||||
exports.Server = Server;
|
exports.Server = Server;
|
||||||
exports.createServer = function (options, listener) {
|
exports.createServer = function(options, listener) {
|
||||||
return new Server(options, listener);
|
return new Server(options, listener);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Server.prototype.setOptions = function (options) {
|
Server.prototype.setOptions = function(options) {
|
||||||
if (typeof options.unauthorizedPeers == "boolean") {
|
if (typeof options.unauthorizedPeers == 'boolean') {
|
||||||
this.unauthorizedPeers = options.unauthorizedPeers;
|
this.unauthorizedPeers = options.unauthorizedPeers;
|
||||||
} else {
|
} else {
|
||||||
this.unauthorizedPeers = false;
|
this.unauthorizedPeers = false;
|
||||||
|
162
lib/util.js
162
lib/util.js
@ -1,26 +1,26 @@
|
|||||||
var events = require('events');
|
var events = require('events');
|
||||||
|
|
||||||
|
|
||||||
exports.print = function () {
|
exports.print = function() {
|
||||||
for (var i = 0, len = arguments.length; i < len; ++i) {
|
for (var i = 0, len = arguments.length; i < len; ++i) {
|
||||||
process.stdout.write(String(arguments[i]));
|
process.stdout.write(String(arguments[i]));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.puts = function () {
|
exports.puts = function() {
|
||||||
for (var i = 0, len = arguments.length; i < len; ++i) {
|
for (var i = 0, len = arguments.length; i < len; ++i) {
|
||||||
process.stdout.write(arguments[i] + '\n');
|
process.stdout.write(arguments[i] + '\n');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.debug = function (x) {
|
exports.debug = function(x) {
|
||||||
process.binding('stdio').writeError("DEBUG: " + x + "\n");
|
process.binding('stdio').writeError('DEBUG: ' + x + '\n');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var error = exports.error = function (x) {
|
var error = exports.error = function(x) {
|
||||||
for (var i = 0, len = arguments.length; i < len; ++i) {
|
for (var i = 0, len = arguments.length; i < len; ++i) {
|
||||||
process.binding('stdio').writeError(arguments[i] + '\n');
|
process.binding('stdio').writeError(arguments[i] + '\n');
|
||||||
}
|
}
|
||||||
@ -31,41 +31,41 @@ var error = exports.error = function (x) {
|
|||||||
* Echos the value of a value. Trys to print the value out
|
* Echos the value of a value. Trys to print the value out
|
||||||
* in the best way possible given the different types.
|
* in the best way possible given the different types.
|
||||||
*
|
*
|
||||||
* @param {Object} value The object to print out
|
* @param {Object} value The object to print out.
|
||||||
* @param {Boolean} showHidden Flag that shows hidden (not enumerable)
|
* @param {Boolean} showHidden Flag that shows hidden (not enumerable)
|
||||||
* properties of objects.
|
* properties of objects.
|
||||||
* @param {Number} depth Depth in which to descend in object. Default is 2.
|
* @param {Number} depth Depth in which to descend in object. Default is 2.
|
||||||
* @param {Boolean} colors Flag to turn on ANSI escape codes to color the
|
* @param {Boolean} colors Flag to turn on ANSI escape codes to color the
|
||||||
* output. Default is false (no coloring).
|
* output. Default is false (no coloring).
|
||||||
*/
|
*/
|
||||||
exports.inspect = function (obj, showHidden, depth, colors) {
|
exports.inspect = function(obj, showHidden, depth, colors) {
|
||||||
var seen = [];
|
var seen = [];
|
||||||
|
|
||||||
var stylize = function (str, styleType) {
|
var stylize = function(str, styleType) {
|
||||||
// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
|
// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
|
||||||
var styles = { 'bold' : [1, 22]
|
var styles = { 'bold' : [1, 22]
|
||||||
, 'italic' : [3, 23]
|
, 'italic' : [3, 23]
|
||||||
, 'underline' : [4, 24]
|
, 'underline' : [4, 24]
|
||||||
, 'inverse' : [7, 27]
|
, 'inverse' : [7, 27]
|
||||||
, 'white' : [37, 39]
|
, 'white' : [37, 39]
|
||||||
, 'grey' : [90, 39]
|
, 'grey' : [90, 39]
|
||||||
, 'black' : [30, 39]
|
, 'black' : [30, 39]
|
||||||
, 'blue' : [34, 39]
|
, 'blue' : [34, 39]
|
||||||
, 'cyan' : [36, 39]
|
, 'cyan' : [36, 39]
|
||||||
, 'green' : [32, 39]
|
, 'green' : [32, 39]
|
||||||
, 'magenta' : [35, 39]
|
, 'magenta' : [35, 39]
|
||||||
, 'red' : [31, 39]
|
, 'red' : [31, 39]
|
||||||
, 'yellow' : [33, 39]
|
, 'yellow' : [33, 39]
|
||||||
};
|
};
|
||||||
var style = { "special": "grey"
|
var style = { 'special': 'grey'
|
||||||
, "number": "blue"
|
, 'number': 'blue'
|
||||||
, "boolean": "blue"
|
, 'boolean': 'blue'
|
||||||
, "undefined": "red"
|
, 'undefined': 'red'
|
||||||
, "null": "red"
|
, 'null': 'red'
|
||||||
, "string": "green"
|
, 'string': 'green'
|
||||||
, "date": "magenta"
|
, 'date': 'magenta'
|
||||||
//, "name": intentionally not styling
|
//, "name": intentionally not styling
|
||||||
, "regexp": "cyan"
|
, 'regexp': 'cyan'
|
||||||
}[styleType];
|
}[styleType];
|
||||||
if (style) {
|
if (style) {
|
||||||
return '\033[' + styles[style][0] + 'm' + str +
|
return '\033[' + styles[style][0] + 'm' + str +
|
||||||
@ -92,13 +92,13 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
// Primitive types cannot have properties
|
// Primitive types cannot have properties
|
||||||
switch (typeof value) {
|
switch (typeof value) {
|
||||||
case 'undefined': return stylize('undefined', 'undefined');
|
case 'undefined': return stylize('undefined', 'undefined');
|
||||||
case 'string': return stylize(
|
case 'string': return stylize(
|
||||||
JSON.stringify(value).replace(/'/g, "\\'")
|
JSON.stringify(value).replace(/'/g, "\\'")
|
||||||
.replace(/\\"/g, '"')
|
.replace(/\\"/g, '"')
|
||||||
.replace(/(^"|"$)/g, "'"),
|
.replace(/(^"|"$)/g, "'"),
|
||||||
'string');
|
'string');
|
||||||
case 'number': return stylize('' + value, 'number');
|
case 'number': return stylize('' + value, 'number');
|
||||||
case 'boolean': return stylize('' + value, 'boolean');
|
case 'boolean': return stylize('' + value, 'boolean');
|
||||||
}
|
}
|
||||||
// For some reason typeof null is "object", so special case here.
|
// For some reason typeof null is "object", so special case here.
|
||||||
if (value === null) {
|
if (value === null) {
|
||||||
@ -114,7 +114,7 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
if (isRegExp(value)) {
|
if (isRegExp(value)) {
|
||||||
return stylize('' + value, 'regexp');
|
return stylize('' + value, 'regexp');
|
||||||
} else {
|
} else {
|
||||||
return stylize('[Function'+ (value.name ? ': '+ value.name : '')+ ']', 'special');
|
return stylize('[Function' + (value.name ? ': ' + value.name : '') + ']', 'special');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,17 +127,17 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
// Determine the object type
|
// Determine the object type
|
||||||
if (isArray(value)) {
|
if (isArray(value)) {
|
||||||
type = 'Array';
|
type = 'Array';
|
||||||
braces = ["[", "]"];
|
braces = ['[', ']'];
|
||||||
} else {
|
} else {
|
||||||
type = 'Object';
|
type = 'Object';
|
||||||
braces = ["{", "}"];
|
braces = ['{', '}'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make functions say that they are functions
|
// Make functions say that they are functions
|
||||||
if (typeof value === 'function') {
|
if (typeof value === 'function') {
|
||||||
base = (isRegExp(value)) ? ' ' + value : ' [Function'+ (value.name ? ': '+ value.name : '')+ ']';
|
base = (isRegExp(value)) ? ' ' + value : ' [Function' + (value.name ? ': ' + value.name : '') + ']';
|
||||||
} else {
|
} else {
|
||||||
base = "";
|
base = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make dates with properties first say the date
|
// Make dates with properties first say the date
|
||||||
@ -151,35 +151,35 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
|
|
||||||
if (recurseTimes < 0) {
|
if (recurseTimes < 0) {
|
||||||
if (isRegExp(value)) {
|
if (isRegExp(value)) {
|
||||||
return stylize('' + value, "regexp");
|
return stylize('' + value, 'regexp');
|
||||||
} else {
|
} else {
|
||||||
return stylize("[Object]", "special");
|
return stylize('[Object]', 'special');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
seen.push(value);
|
seen.push(value);
|
||||||
|
|
||||||
var output = keys.map(function (key) {
|
var output = keys.map(function(key) {
|
||||||
var name, str;
|
var name, str;
|
||||||
if (value.__lookupGetter__) {
|
if (value.__lookupGetter__) {
|
||||||
if (value.__lookupGetter__(key)) {
|
if (value.__lookupGetter__(key)) {
|
||||||
if (value.__lookupSetter__(key)) {
|
if (value.__lookupSetter__(key)) {
|
||||||
str = stylize("[Getter/Setter]", "special");
|
str = stylize('[Getter/Setter]', 'special');
|
||||||
} else {
|
} else {
|
||||||
str = stylize("[Getter]", "special");
|
str = stylize('[Getter]', 'special');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (value.__lookupSetter__(key)) {
|
if (value.__lookupSetter__(key)) {
|
||||||
str = stylize("[Setter]", "special");
|
str = stylize('[Setter]', 'special');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (visible_keys.indexOf(key) < 0) {
|
if (visible_keys.indexOf(key) < 0) {
|
||||||
name = "[" + key + "]";
|
name = '[' + key + ']';
|
||||||
}
|
}
|
||||||
if (!str) {
|
if (!str) {
|
||||||
if (seen.indexOf(value[key]) < 0) {
|
if (seen.indexOf(value[key]) < 0) {
|
||||||
if ( recurseTimes === null) {
|
if (recurseTimes === null) {
|
||||||
str = format(value[key]);
|
str = format(value[key]);
|
||||||
} else {
|
} else {
|
||||||
str = format(value[key], recurseTimes - 1);
|
str = format(value[key], recurseTimes - 1);
|
||||||
@ -205,17 +205,17 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
}
|
}
|
||||||
name = JSON.stringify('' + key);
|
name = JSON.stringify('' + key);
|
||||||
if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
|
if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
|
||||||
name = name.substr(1, name.length-2);
|
name = name.substr(1, name.length - 2);
|
||||||
name = stylize(name, "name");
|
name = stylize(name, 'name');
|
||||||
} else {
|
} else {
|
||||||
name = name.replace(/'/g, "\\'")
|
name = name.replace(/'/g, "\\'")
|
||||||
.replace(/\\"/g, '"')
|
.replace(/\\"/g, '"')
|
||||||
.replace(/(^"|"$)/g, "'");
|
.replace(/(^"|"$)/g, "'");
|
||||||
name = stylize(name, "string");
|
name = stylize(name, 'string');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return name + ": " + str;
|
return name + ': ' + str;
|
||||||
});
|
});
|
||||||
|
|
||||||
seen.pop();
|
seen.pop();
|
||||||
@ -223,7 +223,7 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
var numLinesEst = 0;
|
var numLinesEst = 0;
|
||||||
var length = output.reduce(function(prev, cur) {
|
var length = output.reduce(function(prev, cur) {
|
||||||
numLinesEst++;
|
numLinesEst++;
|
||||||
if( cur.indexOf('\n') >= 0 ) {
|
if (cur.indexOf('\n') >= 0) {
|
||||||
numLinesEst++;
|
numLinesEst++;
|
||||||
}
|
}
|
||||||
return prev + cur.length + 1;
|
return prev + cur.length + 1;
|
||||||
@ -235,8 +235,8 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
+ ' '
|
+ ' '
|
||||||
+ output.join(',\n ')
|
+ output.join(',\n ')
|
||||||
+ ' '
|
+ ' '
|
||||||
+ braces[1]
|
+ braces[1];
|
||||||
;
|
|
||||||
} else {
|
} else {
|
||||||
output = braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
|
output = braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
|
||||||
}
|
}
|
||||||
@ -247,18 +247,18 @@ exports.inspect = function (obj, showHidden, depth, colors) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function isArray (ar) {
|
function isArray(ar) {
|
||||||
return ar instanceof Array
|
return ar instanceof Array
|
||||||
|| Array.isArray(ar)
|
|| Array.isArray(ar)
|
||||||
|| (ar && ar !== Object.prototype && isArray(ar.__proto__));
|
|| (ar && ar !== Object.prototype && isArray(ar.__proto__));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function isRegExp (re) {
|
function isRegExp(re) {
|
||||||
var s = ""+re;
|
var s = ''+ re;
|
||||||
return re instanceof RegExp // easy case
|
return re instanceof RegExp // easy case
|
||||||
|| typeof(re) === "function" // duck-type for context-switching evalcx case
|
|| typeof(re) === 'function' // duck-type for context-switching evalcx case
|
||||||
&& re.constructor.name === "RegExp"
|
&& re.constructor.name === 'RegExp'
|
||||||
&& re.compile
|
&& re.compile
|
||||||
&& re.test
|
&& re.test
|
||||||
&& re.exec
|
&& re.exec
|
||||||
@ -266,9 +266,9 @@ function isRegExp (re) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function isDate (d) {
|
function isDate(d) {
|
||||||
if (d instanceof Date) return true;
|
if (d instanceof Date) return true;
|
||||||
if (typeof d !== "object") return false;
|
if (typeof d !== 'object') return false;
|
||||||
var properties = Date.prototype && Object.getOwnPropertyNames(Date.prototype);
|
var properties = Date.prototype && Object.getOwnPropertyNames(Date.prototype);
|
||||||
var proto = d.__proto__ && Object.getOwnPropertyNames(d.__proto__);
|
var proto = d.__proto__ && Object.getOwnPropertyNames(d.__proto__);
|
||||||
return JSON.stringify(proto) === JSON.stringify(properties);
|
return JSON.stringify(proto) === JSON.stringify(properties);
|
||||||
@ -277,9 +277,9 @@ function isDate (d) {
|
|||||||
|
|
||||||
var pWarning;
|
var pWarning;
|
||||||
|
|
||||||
exports.p = function () {
|
exports.p = function() {
|
||||||
if (!pWarning) {
|
if (!pWarning) {
|
||||||
pWarning = "util.p will be removed in future versions of Node. Use util.puts(util.inspect()) instead.\n";
|
pWarning = 'util.p will be removed in future versions of Node. Use util.puts(util.inspect()) instead.\n';
|
||||||
exports.error(pWarning);
|
exports.error(pWarning);
|
||||||
}
|
}
|
||||||
for (var i = 0, len = arguments.length; i < len; ++i) {
|
for (var i = 0, len = arguments.length; i < len; ++i) {
|
||||||
@ -288,7 +288,7 @@ exports.p = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function pad (n) {
|
function pad(n) {
|
||||||
return n < 10 ? '0' + n.toString(10) : n.toString(10);
|
return n < 10 ? '0' + n.toString(10) : n.toString(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,22 +296,22 @@ function pad (n) {
|
|||||||
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
||||||
|
|
||||||
// 26 Feb 16:19:34
|
// 26 Feb 16:19:34
|
||||||
function timestamp () {
|
function timestamp() {
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
return [ d.getDate()
|
return [d.getDate()
|
||||||
, months[d.getMonth()]
|
, months[d.getMonth()]
|
||||||
, [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':')
|
, [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':')
|
||||||
].join(' ');
|
].join(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
exports.log = function (msg) {
|
exports.log = function(msg) {
|
||||||
exports.puts(timestamp() + ' - ' + msg.toString());
|
exports.puts(timestamp() + ' - ' + msg.toString());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var execWarning;
|
var execWarning;
|
||||||
exports.exec = function () {
|
exports.exec = function() {
|
||||||
if (!execWarning) {
|
if (!execWarning) {
|
||||||
execWarning = 'util.exec has moved to the "child_process" module. Please update your source code.';
|
execWarning = 'util.exec has moved to the "child_process" module. Please update your source code.';
|
||||||
error(execWarning);
|
error(execWarning);
|
||||||
@ -320,49 +320,49 @@ exports.exec = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.pump = function (readStream, writeStream, callback) {
|
exports.pump = function(readStream, writeStream, callback) {
|
||||||
var callbackCalled = false;
|
var callbackCalled = false;
|
||||||
|
|
||||||
function call (a, b, c) {
|
function call(a, b, c) {
|
||||||
if (callback && !callbackCalled) {
|
if (callback && !callbackCalled) {
|
||||||
callback(a, b, c);
|
callback(a, b, c);
|
||||||
callbackCalled = true;
|
callbackCalled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!readStream.pause) readStream.pause = function () {readStream.emit("pause");};
|
if (!readStream.pause) readStream.pause = function() {readStream.emit('pause');};
|
||||||
if (!readStream.resume) readStream.resume = function () {readStream.emit("resume");};
|
if (!readStream.resume) readStream.resume = function() {readStream.emit('resume');};
|
||||||
|
|
||||||
readStream.addListener("data", function (chunk) {
|
readStream.addListener('data', function(chunk) {
|
||||||
if (writeStream.write(chunk) === false) readStream.pause();
|
if (writeStream.write(chunk) === false) readStream.pause();
|
||||||
});
|
});
|
||||||
|
|
||||||
writeStream.addListener("pause", function () {
|
writeStream.addListener('pause', function() {
|
||||||
readStream.pause();
|
readStream.pause();
|
||||||
});
|
});
|
||||||
|
|
||||||
writeStream.addListener("drain", function () {
|
writeStream.addListener('drain', function() {
|
||||||
readStream.resume();
|
readStream.resume();
|
||||||
});
|
});
|
||||||
|
|
||||||
writeStream.addListener("resume", function () {
|
writeStream.addListener('resume', function() {
|
||||||
readStream.resume();
|
readStream.resume();
|
||||||
});
|
});
|
||||||
|
|
||||||
readStream.addListener("end", function () {
|
readStream.addListener('end', function() {
|
||||||
writeStream.end();
|
writeStream.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
readStream.addListener("close", function () {
|
readStream.addListener('close', function() {
|
||||||
call();
|
call();
|
||||||
});
|
});
|
||||||
|
|
||||||
readStream.addListener("error", function (err) {
|
readStream.addListener('error', function(err) {
|
||||||
writeStream.end();
|
writeStream.end();
|
||||||
call(err);
|
call(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
writeStream.addListener("error", function (err) {
|
writeStream.addListener('error', function(err) {
|
||||||
readStream.destroy();
|
readStream.destroy();
|
||||||
call(err);
|
call(err);
|
||||||
});
|
});
|
||||||
@ -378,10 +378,10 @@ exports.pump = function (readStream, writeStream, callback) {
|
|||||||
* expected during bootstrapping (see mirror.js in r114903).
|
* expected during bootstrapping (see mirror.js in r114903).
|
||||||
*
|
*
|
||||||
* @param {function} ctor Constructor function which needs to inherit the
|
* @param {function} ctor Constructor function which needs to inherit the
|
||||||
* prototype
|
* prototype.
|
||||||
* @param {function} superCtor Constructor function to inherit prototype from
|
* @param {function} superCtor Constructor function to inherit prototype from.
|
||||||
*/
|
*/
|
||||||
exports.inherits = function (ctor, superCtor) {
|
exports.inherits = function(ctor, superCtor) {
|
||||||
ctor.super_ = superCtor;
|
ctor.super_ = superCtor;
|
||||||
ctor.prototype = Object.create(superCtor.prototype, {
|
ctor.prototype = Object.create(superCtor.prototype, {
|
||||||
constructor: {
|
constructor: {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
var binding = process.binding('evals');
|
var binding = process.binding('evals');
|
||||||
|
|
||||||
exports.Script = binding.Script;
|
exports.Script = binding.Script;
|
||||||
exports.createScript = function (code, ctx, name) {
|
exports.createScript = function(code, ctx, name) {
|
||||||
return new exports.Script(code, ctx, name);
|
return new exports.Script(code, ctx, name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user