Speed up startup time
Reverts 2a05fe784d.
This commit is contained in:
parent
1ca5b6cd05
commit
497fe79f97
80
src/node.js
80
src/node.js
@ -153,9 +153,12 @@
|
||||
};
|
||||
|
||||
startup.globalConsole = function() {
|
||||
global.console = NativeModule.require('console');
|
||||
global.__defineGetter__('console', function() {
|
||||
return NativeModule.require('console');
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
startup._lazyConstants = null;
|
||||
|
||||
startup.lazyConstants = function() {
|
||||
@ -205,32 +208,35 @@
|
||||
};
|
||||
|
||||
startup.processStdio = function() {
|
||||
var binding = process.binding('stdio'),
|
||||
// FIXME Remove conditional when net is supported again on windows.
|
||||
net = (process.platform !== "win32")
|
||||
? NativeModule.require('net_legacy') // fixme!
|
||||
: undefined,
|
||||
fs = NativeModule.require('fs'),
|
||||
tty = NativeModule.require('tty');
|
||||
var stdout, stdin;
|
||||
|
||||
// process.stdout
|
||||
process.__defineGetter__('stdout', function() {
|
||||
if (stdout) return stdout;
|
||||
|
||||
var fd = binding.stdoutFD;
|
||||
var binding = process.binding('stdio'),
|
||||
// FIXME Remove conditional when net is supported again on windows.
|
||||
net = (process.platform !== "win32")
|
||||
? NativeModule.require('net_legacy') // fixme!
|
||||
: undefined,
|
||||
fs = NativeModule.require('fs'),
|
||||
tty = NativeModule.require('tty'),
|
||||
fd = binding.stdoutFD;
|
||||
|
||||
if (binding.isatty(fd)) {
|
||||
process.stdout = new tty.WriteStream(fd);
|
||||
} else if (binding.isStdoutBlocking()) {
|
||||
process.stdout = new fs.WriteStream(null, {fd: fd});
|
||||
} else {
|
||||
process.stdout = new net.Stream(fd);
|
||||
// FIXME Should probably have an option in net.Stream to create a
|
||||
// stream from an existing fd which is writable only. But for now
|
||||
// we'll just add this hack and set the `readable` member to false.
|
||||
// Test: ./node test/fixtures/echo.js < /etc/passwd
|
||||
process.stdout.readable = false;
|
||||
}
|
||||
if (binding.isatty(fd)) {
|
||||
stdout = new tty.WriteStream(fd);
|
||||
} else if (binding.isStdoutBlocking()) {
|
||||
stdout = new fs.WriteStream(null, {fd: fd});
|
||||
} else {
|
||||
stdout = new net.Stream(fd);
|
||||
// FIXME Should probably have an option in net.Stream to create a
|
||||
// stream from an existing fd which is writable only. But for now
|
||||
// we'll just add this hack and set the `readable` member to false.
|
||||
// Test: ./node test/fixtures/echo.js < /etc/passwd
|
||||
stdout.readable = false;
|
||||
}
|
||||
|
||||
// process.stderr
|
||||
return stdout;
|
||||
});
|
||||
|
||||
var stderr = process.stderr = new EventEmitter();
|
||||
stderr.writable = true;
|
||||
@ -238,18 +244,26 @@
|
||||
stderr.write = process.binding('stdio').writeError;
|
||||
stderr.end = stderr.destroy = stderr.destroySoon = function() { };
|
||||
|
||||
// process.stdin
|
||||
process.__defineGetter__('stdin', function() {
|
||||
if (stdin) return stdin;
|
||||
|
||||
var fd = binding.openStdin();
|
||||
var binding = process.binding('stdio'),
|
||||
net = NativeModule.require('net'),
|
||||
fs = NativeModule.require('fs'),
|
||||
tty = NativeModule.require('tty'),
|
||||
fd = binding.openStdin();
|
||||
|
||||
if (binding.isatty(fd)) {
|
||||
process.stdin = new tty.ReadStream(fd);
|
||||
} else if (binding.isStdinBlocking()) {
|
||||
process.stdin = new fs.ReadStream(null, {fd: fd});
|
||||
} else {
|
||||
process.stdin = new net.Stream(fd);
|
||||
process.stdin.readable = true;
|
||||
}
|
||||
if (binding.isatty(fd)) {
|
||||
stdin = new tty.ReadStream(fd);
|
||||
} else if (binding.isStdinBlocking()) {
|
||||
stdin = new fs.ReadStream(null, {fd: fd});
|
||||
} else {
|
||||
stdin = new net.Stream(fd);
|
||||
stdin.readable = true;
|
||||
}
|
||||
|
||||
return stdin;
|
||||
});
|
||||
|
||||
process.openStdin = function() {
|
||||
process.stdin.resume();
|
||||
|
Loading…
x
Reference in New Issue
Block a user