@@ -34,7 +34,6 @@ const {
3434 ArrayPrototypeSplice,
3535 ArrayPrototypeUnshift,
3636 ArrayPrototypeUnshiftApply,
37- ArrayPrototypeFlatMap,
3837 Boolean,
3938 Error,
4039 JSONParse,
@@ -51,7 +50,6 @@ const {
5150 ReflectSet,
5251 RegExpPrototypeExec,
5352 SafeMap,
54- SafeSet,
5553 SafeWeakMap,
5654 String,
5755 StringPrototypeCharAt,
@@ -81,7 +79,7 @@ const {
8179} = require ( 'internal/source_map/source_map_cache' ) ;
8280const { pathToFileURL, fileURLToPath, isURLInstance } = require ( 'internal/url' ) ;
8381const {
84- deprecate ,
82+ pendingDeprecate ,
8583 emitExperimentalWarning,
8684 kEmptyObject,
8785 filterOwnProperties,
@@ -308,44 +306,29 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => {
308306 debug = fn ;
309307} ) ;
310308
311- const builtinModules = [ ] ;
309+ ObjectDefineProperty ( Module . prototype , 'parent' , {
310+ __proto__ : null ,
311+ get : pendingDeprecate (
312+ getModuleParent ,
313+ 'module.parent is deprecated due to accuracy issues. Please use ' +
314+ 'require.main to find program entry point instead.' ,
315+ 'DEP0144' ,
316+ ) ,
317+ set : pendingDeprecate (
318+ setModuleParent ,
319+ 'module.parent is deprecated due to accuracy issues. Please use ' +
320+ 'require.main to find program entry point instead.' ,
321+ 'DEP0144' ,
322+ ) ,
323+ } ) ;
324+ Module . _debug = pendingDeprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
325+ Module . isBuiltin = BuiltinModule . isBuiltin ;
326+
312327// This function is called during pre-execution, before any user code is run.
313328function initializeCJS ( ) {
314- const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
315- ObjectDefineProperty ( Module . prototype , 'parent' , {
316- __proto__ : null ,
317- get : pendingDeprecation ? deprecate (
318- getModuleParent ,
319- 'module.parent is deprecated due to accuracy issues. Please use ' +
320- 'require.main to find program entry point instead.' ,
321- 'DEP0144' ,
322- ) : getModuleParent ,
323- set : pendingDeprecation ? deprecate (
324- setModuleParent ,
325- 'module.parent is deprecated due to accuracy issues. Please use ' +
326- 'require.main to find program entry point instead.' ,
327- 'DEP0144' ,
328- ) : setModuleParent ,
329- } ) ;
330- Module . _debug = deprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
331-
332- for ( const { 0 : id , 1 : mod } of BuiltinModule . map ) {
333- if ( mod . canBeRequiredByUsers &&
334- BuiltinModule . canBeRequiredWithoutScheme ( id ) ) {
335- ArrayPrototypePush ( builtinModules , id ) ;
336- }
337- }
338-
339- const allBuiltins = new SafeSet (
340- ArrayPrototypeFlatMap ( builtinModules , ( bm ) => [ bm , `node:${ bm } ` ] ) ,
341- ) ;
342- BuiltinModule . getSchemeOnlyModuleNames ( ) . forEach ( ( builtin ) => allBuiltins . add ( `node:${ builtin } ` ) ) ;
343- ObjectFreeze ( builtinModules ) ;
344- Module . builtinModules = builtinModules ;
345-
346- Module . isBuiltin = function isBuiltin ( moduleName ) {
347- return allBuiltins . has ( moduleName ) ;
348- } ;
329+ // This need to be done at runtime in case --expose-internals is set.
330+ const builtinModules = BuiltinModule . getCanBeRequiredByUsersWithoutSchemeList ( ) ;
331+ Module . builtinModules = ObjectFreeze ( builtinModules ) ;
349332
350333 initializeCjsConditions ( ) ;
351334
@@ -801,7 +784,6 @@ Module._resolveLookupPaths = function(request, parent) {
801784 StringPrototypeStartsWith ( request , 'node:' ) &&
802785 BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
803786 ) || (
804- BuiltinModule . canBeRequiredByUsers ( request ) &&
805787 BuiltinModule . canBeRequiredWithoutScheme ( request )
806788 ) ) {
807789 debug ( 'looking for %j in []' , request ) ;
@@ -923,11 +905,11 @@ Module._load = function(request, parent, isMain) {
923905 // Slice 'node:' prefix
924906 const id = StringPrototypeSlice ( request , 5 ) ;
925907
926- const module = loadBuiltinModule ( id , request ) ;
927- if ( ! module ?. canBeRequiredByUsers ) {
908+ if ( ! BuiltinModule . canBeRequiredByUsers ( id ) ) {
928909 throw new ERR_UNKNOWN_BUILTIN_MODULE ( request ) ;
929910 }
930911
912+ const module = loadBuiltinModule ( id , request ) ;
931913 return module . exports ;
932914 }
933915
@@ -945,9 +927,8 @@ Module._load = function(request, parent, isMain) {
945927 }
946928 }
947929
948- const mod = loadBuiltinModule ( filename , request ) ;
949- if ( mod ?. canBeRequiredByUsers &&
950- BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
930+ if ( BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
931+ const mod = loadBuiltinModule ( filename , request ) ;
951932 return mod . exports ;
952933 }
953934
@@ -1001,7 +982,6 @@ Module._resolveFilename = function(request, parent, isMain, options) {
1001982 StringPrototypeStartsWith ( request , 'node:' ) &&
1002983 BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
1003984 ) || (
1004- BuiltinModule . canBeRequiredByUsers ( request ) &&
1005985 BuiltinModule . canBeRequiredWithoutScheme ( request )
1006986 )
1007987 ) {
@@ -1457,8 +1437,7 @@ Module._preloadModules = function(requests) {
14571437
14581438Module . syncBuiltinESMExports = function syncBuiltinESMExports ( ) {
14591439 for ( const mod of BuiltinModule . map . values ( ) ) {
1460- if ( mod . canBeRequiredByUsers &&
1461- BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1440+ if ( BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
14621441 mod . syncExports ( ) ;
14631442 }
14641443 }
0 commit comments