diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index 4554526298b..6eed9eab267 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -42,7 +42,7 @@ // This file is compiled as if it's wrapped in a function with arguments // passed by node::LoadEnvironment() /* global process, getBinding, getLinkedBinding, getInternalBinding */ -/* global debugBreak */ +/* global debugBreak, experimentalModules, exposeInternals */ if (debugBreak) debugger; // eslint-disable-line no-debugger @@ -162,7 +162,6 @@ internalBinding('module_wrap').callbackMap = new WeakMap(); // written in CommonJS style. const loaderExports = { internalBinding, NativeModule }; const loaderId = 'internal/bootstrap/loaders'; -const config = internalBinding('config'); // Set up NativeModule. function NativeModule(id) { @@ -177,7 +176,7 @@ function NativeModule(id) { // Do not expose this to user land even with --expose-internals. this.canBeRequiredByUsers = false; } else if (id.startsWith('internal/')) { - this.canBeRequiredByUsers = config.exposeInternals; + this.canBeRequiredByUsers = exposeInternals; } else { this.canBeRequiredByUsers = true; } @@ -316,7 +315,7 @@ NativeModule.prototype.compile = function() { const fn = compileFunction(id); fn(this.exports, requireFn, this, process, internalBinding); - if (config.experimentalModules && this.canBeRequiredByUsers) { + if (experimentalModules && this.canBeRequiredByUsers) { this.proxifyExports(); } diff --git a/src/node.cc b/src/node.cc index 0f668472442..7ddf36681bb 100644 --- a/src/node.cc +++ b/src/node.cc @@ -701,7 +701,12 @@ void RunBootstrapping(Environment* env) { FIXED_ONE_BYTE_STRING(isolate, "getBinding"), FIXED_ONE_BYTE_STRING(isolate, "getLinkedBinding"), FIXED_ONE_BYTE_STRING(isolate, "getInternalBinding"), - FIXED_ONE_BYTE_STRING(isolate, "debugBreak")}; + // --inspect-brk-node + FIXED_ONE_BYTE_STRING(isolate, "debugBreak"), + // --experimental-modules + FIXED_ONE_BYTE_STRING(isolate, "experimentalModules"), + // --expose-internals + FIXED_ONE_BYTE_STRING(isolate, "exposeInternals")}; std::vector> loaders_args = { process, env->NewFunctionTemplate(binding::GetBinding) @@ -714,7 +719,11 @@ void RunBootstrapping(Environment* env) { ->GetFunction(context) .ToLocalChecked(), Boolean::New(isolate, - env->options()->debug_options().break_node_first_line)}; + env->options()->debug_options().break_node_first_line), + Boolean::New(isolate, + env->options()->experimental_modules), + Boolean::New(isolate, + env->options()->expose_internals)}; MaybeLocal loader_exports; // Bootstrap internal loaders