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