@@ -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, isURLInstance } = require ( 'internal/url' ) ;
83
81
const {
84
- deprecate ,
82
+ pendingDeprecate ,
85
83
emitExperimentalWarning,
86
84
kEmptyObject,
87
85
filterOwnProperties,
@@ -308,44 +306,29 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => {
308
306
debug = fn ;
309
307
} ) ;
310
308
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
+
312
327
// This function is called during pre-execution, before any user code is run.
313
328
function 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 ) ;
349
332
350
333
initializeCjsConditions ( ) ;
351
334
@@ -801,7 +784,6 @@ Module._resolveLookupPaths = function(request, parent) {
801
784
StringPrototypeStartsWith ( request , 'node:' ) &&
802
785
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
803
786
) || (
804
- BuiltinModule . canBeRequiredByUsers ( request ) &&
805
787
BuiltinModule . canBeRequiredWithoutScheme ( request )
806
788
) ) {
807
789
debug ( 'looking for %j in []' , request ) ;
@@ -923,11 +905,11 @@ Module._load = function(request, parent, isMain) {
923
905
// Slice 'node:' prefix
924
906
const id = StringPrototypeSlice ( request , 5 ) ;
925
907
926
- const module = loadBuiltinModule ( id , request ) ;
927
- if ( ! module ?. canBeRequiredByUsers ) {
908
+ if ( ! BuiltinModule . canBeRequiredByUsers ( id ) ) {
928
909
throw new ERR_UNKNOWN_BUILTIN_MODULE ( request ) ;
929
910
}
930
911
912
+ const module = loadBuiltinModule ( id , request ) ;
931
913
return module . exports ;
932
914
}
933
915
@@ -945,9 +927,8 @@ Module._load = function(request, parent, isMain) {
945
927
}
946
928
}
947
929
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 ) ;
951
932
return mod . exports ;
952
933
}
953
934
@@ -1001,7 +982,6 @@ Module._resolveFilename = function(request, parent, isMain, options) {
1001
982
StringPrototypeStartsWith ( request , 'node:' ) &&
1002
983
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
1003
984
) || (
1004
- BuiltinModule . canBeRequiredByUsers ( request ) &&
1005
985
BuiltinModule . canBeRequiredWithoutScheme ( request )
1006
986
)
1007
987
) {
@@ -1457,8 +1437,7 @@ Module._preloadModules = function(requests) {
1457
1437
1458
1438
Module . syncBuiltinESMExports = function syncBuiltinESMExports ( ) {
1459
1439
for ( const mod of BuiltinModule . map . values ( ) ) {
1460
- if ( mod . canBeRequiredByUsers &&
1461
- BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1440
+ if ( BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1462
1441
mod . syncExports ( ) ;
1463
1442
}
1464
1443
}
0 commit comments