1'use strict'; 2 3const { ObjectDefineProperty } = primordials; 4 5delete process._debugProcess; 6delete process._debugEnd; 7 8function defineStream(name, getter) { 9 ObjectDefineProperty(process, name, { 10 __proto__: null, 11 configurable: true, 12 enumerable: true, 13 get: getter, 14 }); 15} 16 17defineStream('stdout', getStdout); 18defineStream('stdin', getStdin); 19defineStream('stderr', getStderr); 20 21// Worker threads don't receive signals. 22const { 23 startListeningIfSignal, 24 stopListeningIfSignal, 25} = require('internal/process/signal'); 26process.removeListener('newListener', startListeningIfSignal); 27process.removeListener('removeListener', stopListeningIfSignal); 28 29// ---- keep the attachment of the wrappers above so that it's easier to ---- 30// ---- compare the setups side-by-side ----- 31 32const { 33 createWorkerStdio, 34} = require('internal/worker/io'); 35 36let workerStdio; 37function lazyWorkerStdio() { 38 if (!workerStdio) workerStdio = createWorkerStdio(); 39 return workerStdio; 40} 41 42function getStdout() { return lazyWorkerStdio().stdout; } 43 44function getStderr() { return lazyWorkerStdio().stderr; } 45 46function getStdin() { return lazyWorkerStdio().stdin; } 47