diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 661b1eb3803..e087a10844c 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -67,7 +67,7 @@ perThreadSetup.setupConfig(NativeModule._source); if (isMainThread) { - mainThreadSetup.setupSignalHandlers(); + mainThreadSetup.setupSignalHandlers(internalBinding); } perThreadSetup.setupUncaughtExceptionCapture(exceptionHandlerState, @@ -349,7 +349,8 @@ 'uv', 'http_parser', 'v8', - 'stream_wrap']); + 'stream_wrap', + 'signal_wrap']); process.binding = function binding(name) { return internalBindingWhitelist.has(name) ? internalBinding(name) : diff --git a/lib/internal/process/main_thread_only.js b/lib/internal/process/main_thread_only.js index 058223cc557..49910fafd7e 100644 --- a/lib/internal/process/main_thread_only.js +++ b/lib/internal/process/main_thread_only.js @@ -117,7 +117,7 @@ function setupPosixMethods(_initgroups, _setegid, _seteuid, } // Worker threads don't receive signals. -function setupSignalHandlers() { +function setupSignalHandlers(internalBinding) { const constants = process.binding('constants').os.signals; const signalWraps = Object.create(null); let Signal; @@ -130,7 +130,7 @@ function setupSignalHandlers() { process.on('newListener', function(type) { if (isSignal(type) && signalWraps[type] === undefined) { if (Signal === undefined) - Signal = process.binding('signal_wrap').Signal; + Signal = internalBinding('signal_wrap').Signal; const wrap = new Signal(); wrap.unref(); diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc index 463a8a50d5e..0ba3fb3ceb7 100644 --- a/src/signal_wrap.cc +++ b/src/signal_wrap.cc @@ -128,4 +128,4 @@ class SignalWrap : public HandleWrap { } // namespace node -NODE_BUILTIN_MODULE_CONTEXT_AWARE(signal_wrap, node::SignalWrap::Initialize) +NODE_MODULE_CONTEXT_AWARE_INTERNAL(signal_wrap, node::SignalWrap::Initialize) diff --git a/test/parallel/test-process-binding-internalbinding-whitelist.js b/test/parallel/test-process-binding-internalbinding-whitelist.js index 9c8cca25035..5c74a29b735 100644 --- a/test/parallel/test-process-binding-internalbinding-whitelist.js +++ b/test/parallel/test-process-binding-internalbinding-whitelist.js @@ -10,3 +10,4 @@ assert(process.binding('uv')); assert(process.binding('http_parser')); assert(process.binding('v8')); assert(process.binding('stream_wrap')); +assert(process.binding('signal_wrap')); diff --git a/test/parallel/test-signal-safety.js b/test/parallel/test-signal-safety.js index a4fb618b1cb..917e7c2cfac 100644 --- a/test/parallel/test-signal-safety.js +++ b/test/parallel/test-signal-safety.js @@ -1,7 +1,9 @@ +// Flags: --expose-internals 'use strict'; require('../common'); const assert = require('assert'); -const Signal = process.binding('signal_wrap').Signal; +const { internalBinding } = require('internal/test/binding'); +const { Signal } = internalBinding('signal_wrap'); // Test Signal `this` safety // https://github.com/joyent/node/issues/6690 diff --git a/test/sequential/test-async-wrap-getasyncid.js b/test/sequential/test-async-wrap-getasyncid.js index 917f84bd821..c510405341f 100644 --- a/test/sequential/test-async-wrap-getasyncid.js +++ b/test/sequential/test-async-wrap-getasyncid.js @@ -1,5 +1,5 @@ 'use strict'; -// Flags: --expose-gc --expose-internals +// Flags: --expose-gc --expose-internals --no-warnings const common = require('../common'); const { internalBinding } = require('internal/test/binding'); @@ -187,7 +187,7 @@ if (common.hasCrypto) { // eslint-disable-line node-core/crypto-check } { - const Signal = process.binding('signal_wrap').Signal; + const { Signal } = internalBinding('signal_wrap'); testInitialized(new Signal(), 'Signal'); }