diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 661b1eb3803be6..e087a10844ce35 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 058223cc557eab..49910fafd7ebee 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 463a8a50d5e772..0ba3fb3ceb7990 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 9c8cca25035031..5c74a29b735a47 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 a4fb618b1cbfa5..917e7c2cfac2a3 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 917f84bd821150..c510405341ffed 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'); }