Skip to content

Commit

Permalink
lib: disambiguate native module to builtin module
Browse files Browse the repository at this point in the history
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: #45673
Refs: #44135
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
  • Loading branch information
daeyeon authored and danielleadams committed Dec 29, 2022
1 parent 7e16faa commit 126685d
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions lib/internal/bootstrap/loaders.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ const schemelessBlockList = new SafeSet([
'DEP0111');
}
if (legacyWrapperList.has(module)) {
return nativeModuleRequire('internal/legacy/processbinding')[module]();
return requireBuiltin('internal/legacy/processbinding')[module]();
}
return internalBinding(module);
}
Expand Down Expand Up @@ -285,14 +285,14 @@ class BuiltinModule {
// TODO(aduh95): move this to C++, alongside the initialization of the class.
ObjectSetPrototypeOf(ModuleWrap.prototype, null);
const url = `node:${this.id}`;
const nativeModule = this;
const builtin = this;
const exportsKeys = ArrayPrototypeSlice(this.exportKeys);
ArrayPrototypePush(exportsKeys, 'default');
this.module = new ModuleWrap(
url, undefined, exportsKeys,
function() {
nativeModule.syncExports();
this.setExport('default', nativeModule.exports);
builtin.syncExports();
this.setExport('default', builtin.exports);
});
// Ensure immediate sync execution to capture exports now
this.module.instantiate();
Expand Down Expand Up @@ -326,7 +326,7 @@ class BuiltinModule {

try {
const requireFn = StringPrototypeStartsWith(this.id, 'internal/deps/') ?
requireWithFallbackInDeps : nativeModuleRequire;
requireWithFallbackInDeps : requireBuiltin;

const fn = compileFunction(id);
// Arguments must match the parameters specified in
Expand All @@ -350,10 +350,10 @@ class BuiltinModule {
const loaderExports = {
internalBinding,
BuiltinModule,
require: nativeModuleRequire
require: requireBuiltin
};

function nativeModuleRequire(id) {
function requireBuiltin(id) {
if (id === loaderId) {
return loaderExports;
}
Expand All @@ -371,7 +371,7 @@ function requireWithFallbackInDeps(request) {
if (!BuiltinModule.map.has(request)) {
request = `internal/deps/${request}`;
}
return nativeModuleRequire(request);
return requireBuiltin(request);
}

// Pass the exports back to C++ land for C++ internals to use.
Expand Down

0 comments on commit 126685d

Please sign in to comment.