@@ -34,7 +34,6 @@ const {
34
34
ArrayPrototypeSplice,
35
35
ArrayPrototypeUnshift,
36
36
ArrayPrototypeUnshiftApply,
37
- ArrayPrototypeFlatMap,
38
37
Boolean,
39
38
Error,
40
39
JSONParse,
@@ -51,7 +50,6 @@ const {
51
50
ReflectSet,
52
51
RegExpPrototypeExec,
53
52
SafeMap,
54
- SafeSet,
55
53
SafeWeakMap,
56
54
String,
57
55
StringPrototypeCharAt,
@@ -81,7 +79,7 @@ const {
81
79
} = require ( 'internal/source_map/source_map_cache' ) ;
82
80
const { pathToFileURL, fileURLToPath, isURL } = require ( 'internal/url' ) ;
83
81
const {
84
- deprecate ,
82
+ pendingDeprecate ,
85
83
emitExperimentalWarning,
86
84
kEmptyObject,
87
85
filterOwnProperties,
@@ -309,44 +307,29 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => {
309
307
debug = fn ;
310
308
} ) ;
311
309
312
- const builtinModules = [ ] ;
310
+ ObjectDefineProperty ( Module . prototype , 'parent' , {
311
+ __proto__ : null ,
312
+ get : pendingDeprecate (
313
+ getModuleParent ,
314
+ 'module.parent is deprecated due to accuracy issues. Please use ' +
315
+ 'require.main to find program entry point instead.' ,
316
+ 'DEP0144' ,
317
+ ) ,
318
+ set : pendingDeprecate (
319
+ setModuleParent ,
320
+ 'module.parent is deprecated due to accuracy issues. Please use ' +
321
+ 'require.main to find program entry point instead.' ,
322
+ 'DEP0144' ,
323
+ ) ,
324
+ } ) ;
325
+ Module . _debug = pendingDeprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
326
+ Module . isBuiltin = BuiltinModule . isBuiltin ;
327
+
313
328
// This function is called during pre-execution, before any user code is run.
314
329
function initializeCJS ( ) {
315
- const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
316
- ObjectDefineProperty ( Module . prototype , 'parent' , {
317
- __proto__ : null ,
318
- get : pendingDeprecation ? deprecate (
319
- getModuleParent ,
320
- 'module.parent is deprecated due to accuracy issues. Please use ' +
321
- 'require.main to find program entry point instead.' ,
322
- 'DEP0144' ,
323
- ) : getModuleParent ,
324
- set : pendingDeprecation ? deprecate (
325
- setModuleParent ,
326
- 'module.parent is deprecated due to accuracy issues. Please use ' +
327
- 'require.main to find program entry point instead.' ,
328
- 'DEP0144' ,
329
- ) : setModuleParent ,
330
- } ) ;
331
- Module . _debug = deprecate ( debug , 'Module._debug is deprecated.' , 'DEP0077' ) ;
332
-
333
- for ( const { 0 : id , 1 : mod } of BuiltinModule . map ) {
334
- if ( mod . canBeRequiredByUsers &&
335
- BuiltinModule . canBeRequiredWithoutScheme ( id ) ) {
336
- ArrayPrototypePush ( builtinModules , id ) ;
337
- }
338
- }
339
-
340
- const allBuiltins = new SafeSet (
341
- ArrayPrototypeFlatMap ( builtinModules , ( bm ) => [ bm , `node:${ bm } ` ] ) ,
342
- ) ;
343
- BuiltinModule . getSchemeOnlyModuleNames ( ) . forEach ( ( builtin ) => allBuiltins . add ( `node:${ builtin } ` ) ) ;
344
- ObjectFreeze ( builtinModules ) ;
345
- Module . builtinModules = builtinModules ;
346
-
347
- Module . isBuiltin = function isBuiltin ( moduleName ) {
348
- return allBuiltins . has ( moduleName ) ;
349
- } ;
330
+ // This need to be done at runtime in case --expose-internals is set.
331
+ const builtinModules = BuiltinModule . getCanBeRequiredByUsersWithoutSchemeList ( ) ;
332
+ Module . builtinModules = ObjectFreeze ( builtinModules ) ;
350
333
351
334
initializeCjsConditions ( ) ;
352
335
@@ -813,7 +796,6 @@ Module._resolveLookupPaths = function(request, parent) {
813
796
StringPrototypeStartsWith ( request , 'node:' ) &&
814
797
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
815
798
) || (
816
- BuiltinModule . canBeRequiredByUsers ( request ) &&
817
799
BuiltinModule . canBeRequiredWithoutScheme ( request )
818
800
) ) {
819
801
debug ( 'looking for %j in []' , request ) ;
@@ -935,11 +917,11 @@ Module._load = function(request, parent, isMain) {
935
917
// Slice 'node:' prefix
936
918
const id = StringPrototypeSlice ( request , 5 ) ;
937
919
938
- const module = loadBuiltinModule ( id , request ) ;
939
- if ( ! module ?. canBeRequiredByUsers ) {
920
+ if ( ! BuiltinModule . canBeRequiredByUsers ( id ) ) {
940
921
throw new ERR_UNKNOWN_BUILTIN_MODULE ( request ) ;
941
922
}
942
923
924
+ const module = loadBuiltinModule ( id , request ) ;
943
925
return module . exports ;
944
926
}
945
927
@@ -957,9 +939,8 @@ Module._load = function(request, parent, isMain) {
957
939
}
958
940
}
959
941
960
- const mod = loadBuiltinModule ( filename , request ) ;
961
- if ( mod ?. canBeRequiredByUsers &&
962
- BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
942
+ if ( BuiltinModule . canBeRequiredWithoutScheme ( filename ) ) {
943
+ const mod = loadBuiltinModule ( filename , request ) ;
963
944
return mod . exports ;
964
945
}
965
946
@@ -1013,7 +994,6 @@ Module._resolveFilename = function(request, parent, isMain, options) {
1013
994
StringPrototypeStartsWith ( request , 'node:' ) &&
1014
995
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
1015
996
) || (
1016
- BuiltinModule . canBeRequiredByUsers ( request ) &&
1017
997
BuiltinModule . canBeRequiredWithoutScheme ( request )
1018
998
)
1019
999
) {
@@ -1469,8 +1449,7 @@ Module._preloadModules = function(requests) {
1469
1449
1470
1450
Module . syncBuiltinESMExports = function syncBuiltinESMExports ( ) {
1471
1451
for ( const mod of BuiltinModule . map . values ( ) ) {
1472
- if ( mod . canBeRequiredByUsers &&
1473
- BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1452
+ if ( BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1474
1453
mod . syncExports ( ) ;
1475
1454
}
1476
1455
}
0 commit comments