@@ -34,7 +34,6 @@ const {
3434 ArrayPrototypeSplice,
3535 ArrayPrototypeUnshift,
3636 ArrayPrototypeUnshiftApply,
37- ArrayPrototypeFlatMap,
3837 Boolean,
3938 Error,
4039 JSONParse,
@@ -52,7 +51,6 @@ const {
5251 ReflectSet,
5352 RegExpPrototypeExec,
5453 SafeMap,
55- SafeSet,
5654 SafeWeakMap,
5755 String,
5856 StringPrototypeCharAt,
@@ -82,7 +80,7 @@ const {
8280} = require ( 'internal/source_map/source_map_cache' ) ;
8381const { pathToFileURL, fileURLToPath, isURL } = require ( 'internal/url' ) ;
8482const {
85- deprecate ,
83+ pendingDeprecate ,
8684 emitExperimentalWarning,
8785 kEmptyObject,
8886 filterOwnProperties,
@@ -310,44 +308,29 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => {
310308 debug = fn ;
311309} ) ;
312310
313- const builtinModules = [ ] ;
311+ ObjectDefineProperty ( Module . prototype , 'parent' , {
312+ __proto__ : null ,
313+ get : pendingDeprecate (
314+ getModuleParent ,
315+ 'module.parent is deprecated due to accuracy issues. Please use ' +
316+ 'require.main to find program entry point instead.' ,
317+ 'DEP0144' ,
318+ ) ,
319+ set : pendingDeprecate (
320+ setModuleParent ,
321+ 'module.parent is deprecated due to accuracy issues. Please use ' +
322+ 'require.main to find program entry point instead.' ,
323+ 'DEP0144' ,
324+ ) ,
325+ } ) ;
326+ Module . _debug = pendingDeprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
327+ Module . isBuiltin = BuiltinModule . isBuiltin ;
328+
314329// This function is called during pre-execution, before any user code is run.
315330function initializeCJS ( ) {
316- const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
317- ObjectDefineProperty ( Module . prototype , 'parent' , {
318- __proto__ : null ,
319- get : pendingDeprecation ? deprecate (
320- getModuleParent ,
321- 'module.parent is deprecated due to accuracy issues. Please use ' +
322- 'require.main to find program entry point instead.' ,
323- 'DEP0144' ,
324- ) : getModuleParent ,
325- set : pendingDeprecation ? deprecate (
326- setModuleParent ,
327- 'module.parent is deprecated due to accuracy issues. Please use ' +
328- 'require.main to find program entry point instead.' ,
329- 'DEP0144' ,
330- ) : setModuleParent ,
331- } ) ;
332- Module . _debug = deprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
333-
334- for ( const { 0 : id , 1 : mod } of BuiltinModule . map ) {
335- if ( mod . canBeRequiredByUsers &&
336- BuiltinModule . canBeRequiredWithoutScheme ( id ) ) {
337- ArrayPrototypePush ( builtinModules , id ) ;
338- }
339- }
340-
341- const allBuiltins = new SafeSet (
342- ArrayPrototypeFlatMap ( builtinModules , ( bm ) => [ bm , `node:${ bm } ` ] ) ,
343- ) ;
344- BuiltinModule . getSchemeOnlyModuleNames ( ) . forEach ( ( builtin ) => allBuiltins . add ( `node:${ builtin } ` ) ) ;
345- ObjectFreeze ( builtinModules ) ;
346- Module . builtinModules = builtinModules ;
347-
348- Module . isBuiltin = function isBuiltin ( moduleName ) {
349- return allBuiltins . has ( moduleName ) ;
350- } ;
331+ // This need to be done at runtime in case --expose-internals is set.
332+ const builtinModules = BuiltinModule . getCanBeRequiredByUsersWithoutSchemeList ( ) ;
333+ Module . builtinModules = ObjectFreeze ( builtinModules ) ;
351334
352335 initializeCjsConditions ( ) ;
353336
@@ -803,7 +786,6 @@ Module._resolveLookupPaths = function(request, parent) {
803786 StringPrototypeStartsWith ( request , 'node:' ) &&
804787 BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
805788 ) || (
806- BuiltinModule . canBeRequiredByUsers ( request ) &&
807789 BuiltinModule . canBeRequiredWithoutScheme ( request )
808790 ) ) {
809791 debug ( 'looking for %j in []' , request ) ;
@@ -925,11 +907,11 @@ Module._load = function(request, parent, isMain) {
925907 // Slice 'node:' prefix
926908 const id = StringPrototypeSlice ( request , 5 ) ;
927909
928- const module = loadBuiltinModule ( id , request ) ;
929- if ( ! module ?. canBeRequiredByUsers ) {
910+ if ( ! BuiltinModule . canBeRequiredByUsers ( id ) ) {
930911 throw new ERR_UNKNOWN_BUILTIN_MODULE ( request ) ;
931912 }
932913
914+ const module = loadBuiltinModule ( id , request ) ;
933915 return module . exports ;
934916 }
935917
@@ -947,9 +929,8 @@ Module._load = function(request, parent, isMain) {
947929 }
948930 }
949931
950- const mod = loadBuiltinModule ( filename , request ) ;
951- if ( mod ?. canBeRequiredByUsers &&
952- BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
932+ if ( BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
933+ const mod = loadBuiltinModule ( filename , request ) ;
953934 return mod . exports ;
954935 }
955936
@@ -1003,7 +984,6 @@ Module._resolveFilename = function(request, parent, isMain, options) {
1003984 StringPrototypeStartsWith ( request , 'node:' ) &&
1004985 BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
1005986 ) || (
1006- BuiltinModule . canBeRequiredByUsers ( request ) &&
1007987 BuiltinModule . canBeRequiredWithoutScheme ( request )
1008988 )
1009989 ) {
@@ -1459,8 +1439,7 @@ Module._preloadModules = function(requests) {
14591439
14601440Module . syncBuiltinESMExports = function syncBuiltinESMExports ( ) {
14611441 for ( const mod of BuiltinModule . map . values ( ) ) {
1462- if ( mod . canBeRequiredByUsers &&
1463- BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1442+ if ( BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
14641443 mod . syncExports ( ) ;
14651444 }
14661445 }
0 commit comments