23 lines
		
	
	
		
			758 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			758 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								// workaround for tty output truncation on Node.js
							 | 
						||
| 
								 | 
							
								try {
							 | 
						||
| 
								 | 
							
								    // prevent buffer overflow and other asynchronous bugs
							 | 
						||
| 
								 | 
							
								    process.stdout._handle.setBlocking(true);
							 | 
						||
| 
								 | 
							
								    process.stderr._handle.setBlocking(true);
							 | 
						||
| 
								 | 
							
								} catch (e) {
							 | 
						||
| 
								 | 
							
								    // ensure output buffers are flushed before process termination
							 | 
						||
| 
								 | 
							
								    var exit = process.exit;
							 | 
						||
| 
								 | 
							
								    process.exit = function() {
							 | 
						||
| 
								 | 
							
								        var args = [].slice.call(arguments);
							 | 
						||
| 
								 | 
							
								        process.once("uncaughtException", function() {
							 | 
						||
| 
								 | 
							
								            (function callback() {
							 | 
						||
| 
								 | 
							
								                if (process.stdout.bufferSize || process.stderr.bufferSize) {
							 | 
						||
| 
								 | 
							
								                    setTimeout(callback, 1);
							 | 
						||
| 
								 | 
							
								                } else {
							 | 
						||
| 
								 | 
							
								                    exit.apply(process, args);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            })();
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        throw exit;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}
							 |