1// workaround for tty output truncation on Node.js 2try { 3 // prevent buffer overflow and other asynchronous bugs 4 process.stdout._handle.setBlocking(true); 5 process.stderr._handle.setBlocking(true); 6} catch (e) { 7 // ensure output buffers are flushed before process termination 8 var exit = process.exit; 9 process.exit = function() { 10 var args = [].slice.call(arguments); 11 process.once("uncaughtException", function() { 12 (function callback() { 13 if (process.stdout.bufferSize || process.stderr.bufferSize) { 14 setTimeout(callback, 1); 15 } else { 16 exit.apply(process, args); 17 } 18 })(); 19 }); 20 throw exit; 21 }; 22} 23