Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc,lib: disambiguate the old term, NativeModule #45673

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 3 additions & 2 deletions doc/api/esm.md
Expand Up @@ -486,9 +486,9 @@ These CommonJS variables are not available in ES modules.
`__filename` and `__dirname` use cases can be replicated via
[`import.meta.url`][].

#### No Native Module Loading
#### No Addon Loading

Native modules are not currently supported with ES module imports.
[Addons][] are not currently supported with ES module imports.

They can instead be loaded with [`module.createRequire()`][] or
[`process.dlopen`][].
Expand Down Expand Up @@ -1525,6 +1525,7 @@ for ESM specifiers is [commonjs-extension-resolution-loader][].
<!-- Note: The cjs-module-lexer link should be kept in-sync with the deps version -->

[6.1.7 Array Index]: https://tc39.es/ecma262/#integer-index
[Addons]: addons.md
[CommonJS]: modules.md
[Conditional exports]: packages.md#conditional-exports
[Core modules]: modules.md#core-modules
Expand Down
16 changes: 8 additions & 8 deletions lib/internal/bootstrap/loaders.js
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
6 changes: 3 additions & 3 deletions lib/internal/bootstrap/node.js
Expand Up @@ -140,9 +140,9 @@ process.domain = null;
process._exiting = false;

// process.config is serialized config.gypi
const nativeModule = internalBinding('builtins');
const binding = internalBinding('builtins');

const processConfig = JSONParse(nativeModule.config, (_key, value) => {
const processConfig = JSONParse(binding.config, (_key, value) => {
// The `reviver` argument of the JSONParse method will visit all the values of
// the parsed config, including the "root" object, so there is no need to
// explicitly freeze the config outside of this method
Expand Down Expand Up @@ -288,7 +288,7 @@ const features = {
// This needs to be dynamic because --no-node-snapshot disables the
// code cache even if the binary is built with embedded code cache.
get cached_builtins() {
return nativeModule.hasCachedBuiltins();
return binding.hasCachedBuiltins();
}
};

Expand Down