improve CLI interoperability (#5762)
This commit is contained in:
14
bin/uglifyjs
14
bin/uglifyjs
@@ -301,9 +301,19 @@ if (specified["in-situ"]) {
|
||||
process.stdin.setEncoding("utf8");
|
||||
process.stdin.once("data", function() {
|
||||
clearTimeout(timerId);
|
||||
}).on("data", function(chunk) {
|
||||
}).on("data", process.stdin.isTTY ? function(chunk) {
|
||||
// emulate console input termination via Ctrl+D / Ctrl+Z
|
||||
var match = /[\x04\x1a]\r?\n?$/.exec(chunk);
|
||||
if (match) {
|
||||
chunks.push(chunk.slice(0, -match[0].length));
|
||||
process.stdin.pause();
|
||||
process.stdin.emit("end");
|
||||
} else {
|
||||
chunks.push(chunk);
|
||||
}
|
||||
} : function(chunk) {
|
||||
chunks.push(chunk);
|
||||
}).on("end", function() {
|
||||
}).once("end", function() {
|
||||
files = { STDIN: chunks.join("") };
|
||||
run();
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@ try {
|
||||
} catch (e) {
|
||||
// ensure output buffers are flushed before process termination
|
||||
var exit = process.exit;
|
||||
process.exit = function() {
|
||||
if ("bufferSize" in process.stdout) process.exit = function() {
|
||||
var args = [].slice.call(arguments);
|
||||
process.once("uncaughtException", function() {
|
||||
(function callback() {
|
||||
|
||||
Reference in New Issue
Block a user