@@ -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,
@@ -52,7 +51,6 @@ const {
52
51
ReflectSet,
53
52
RegExpPrototypeExec,
54
53
SafeMap,
55
- SafeSet,
56
54
SafeWeakMap,
57
55
String,
58
56
StringPrototypeCharAt,
@@ -82,7 +80,7 @@ const {
82
80
} = require ( 'internal/source_map/source_map_cache' ) ;
83
81
const { pathToFileURL, fileURLToPath, isURL } = require ( 'internal/url' ) ;
84
82
const {
85
- deprecate ,
83
+ pendingDeprecate ,
86
84
emitExperimentalWarning,
87
85
kEmptyObject,
88
86
filterOwnProperties,
@@ -310,44 +308,29 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => {
310
308
debug = fn ;
311
309
} ) ;
312
310
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
+
314
329
// This function is called during pre-execution, before any user code is run.
315
330
function 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 ) ;
351
334
352
335
initializeCjsConditions ( ) ;
353
336
@@ -803,7 +786,6 @@ Module._resolveLookupPaths = function(request, parent) {
803
786
StringPrototypeStartsWith ( request , 'node:' ) &&
804
787
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
805
788
) || (
806
- BuiltinModule . canBeRequiredByUsers ( request ) &&
807
789
BuiltinModule . canBeRequiredWithoutScheme ( request )
808
790
) ) {
809
791
debug ( 'looking for %j in []' , request ) ;
@@ -925,11 +907,11 @@ Module._load = function(request, parent, isMain) {
925
907
// Slice 'node:' prefix
926
908
const id = StringPrototypeSlice ( request , 5 ) ;
927
909
928
- const module = loadBuiltinModule ( id , request ) ;
929
- if ( ! module ?. canBeRequiredByUsers ) {
910
+ if ( ! BuiltinModule . canBeRequiredByUsers ( id ) ) {
930
911
throw new ERR_UNKNOWN_BUILTIN_MODULE ( request ) ;
931
912
}
932
913
914
+ const module = loadBuiltinModule ( id , request ) ;
933
915
return module . exports ;
934
916
}
935
917
@@ -947,9 +929,8 @@ Module._load = function(request, parent, isMain) {
947
929
}
948
930
}
949
931
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 ) ;
953
934
return mod . exports ;
954
935
}
955
936
@@ -1003,7 +984,6 @@ Module._resolveFilename = function(request, parent, isMain, options) {
1003
984
StringPrototypeStartsWith ( request , 'node:' ) &&
1004
985
BuiltinModule . canBeRequiredByUsers ( StringPrototypeSlice ( request , 5 ) )
1005
986
) || (
1006
- BuiltinModule . canBeRequiredByUsers ( request ) &&
1007
987
BuiltinModule . canBeRequiredWithoutScheme ( request )
1008
988
)
1009
989
) {
@@ -1459,8 +1439,7 @@ Module._preloadModules = function(requests) {
1459
1439
1460
1440
Module . syncBuiltinESMExports = function syncBuiltinESMExports ( ) {
1461
1441
for ( const mod of BuiltinModule . map . values ( ) ) {
1462
- if ( mod . canBeRequiredByUsers &&
1463
- BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1442
+ if ( BuiltinModule . canBeRequiredWithoutScheme ( mod . id ) ) {
1464
1443
mod . syncExports ( ) ;
1465
1444
}
1466
1445
}
0 commit comments