@@ -46,6 +46,7 @@ const {
46
46
ArrayPrototypeConcat,
47
47
ArrayPrototypeFilter,
48
48
ArrayPrototypeFindIndex,
49
+ ArrayPrototypeForEach,
49
50
ArrayPrototypeIncludes,
50
51
ArrayPrototypeJoin,
51
52
ArrayPrototypeMap,
@@ -663,7 +664,7 @@ function REPLServer(prompt,
663
664
let matched = false ;
664
665
665
666
errStack = '' ;
666
- for ( const line of lines ) {
667
+ ArrayPrototypeForEach ( lines , ( line ) => {
667
668
if ( ! matched &&
668
669
RegExpPrototypeTest ( / ^ \[ ? ( [ A - Z ] [ a - z 0 - 9 _ ] * ) * E r r o r / , line ) ) {
669
670
errStack += writer . options . breakLength >= line . length ?
@@ -673,7 +674,7 @@ function REPLServer(prompt,
673
674
} else {
674
675
errStack += line ;
675
676
}
676
- }
677
+ } ) ;
677
678
if ( ! matched ) {
678
679
const ln = lines . length === 1 ? ' ' : ':\n' ;
679
680
errStack = `Uncaught${ ln } ${ errStack } ` ;
@@ -754,9 +755,7 @@ function REPLServer(prompt,
754
755
const prioritizedSigintQueue = new SafeSet ( ) ;
755
756
self . on ( 'SIGINT' , function onSigInt ( ) {
756
757
if ( prioritizedSigintQueue . size > 0 ) {
757
- for ( const task of prioritizedSigintQueue ) {
758
- task ( ) ;
759
- }
758
+ ArrayPrototypeForEach ( prioritizedSigintQueue , ( task ) => task ( ) ) ;
760
759
return ;
761
760
}
762
761
@@ -1010,13 +1009,13 @@ REPLServer.prototype.createContext = function() {
1010
1009
} , ( ) => {
1011
1010
context = vm . createContext ( ) ;
1012
1011
} ) ;
1013
- for ( const name of ObjectGetOwnPropertyNames ( global ) ) {
1012
+ ArrayPrototypeForEach ( ObjectGetOwnPropertyNames ( global ) , ( name ) => {
1014
1013
// Only set properties that do not already exist as a global builtin.
1015
1014
if ( ! globalBuiltins . has ( name ) ) {
1016
1015
ObjectDefineProperty ( context , name ,
1017
1016
ObjectGetOwnPropertyDescriptor ( global , name ) ) ;
1018
1017
}
1019
- }
1018
+ } ) ;
1020
1019
context . global = context ;
1021
1020
const _console = new Console ( this . output ) ;
1022
1021
ObjectDefineProperty ( context , 'console' , {
@@ -1231,7 +1230,7 @@ function complete(line, callback) {
1231
1230
paths = ArrayPrototypeConcat ( module . paths , CJSModule . globalPaths ) ;
1232
1231
}
1233
1232
1234
- for ( let dir of paths ) {
1233
+ ArrayPrototypeForEach ( paths , ( dir ) => {
1235
1234
dir = path . resolve ( dir , subdir ) ;
1236
1235
const dirents = gracefulReaddir ( dir , { withFileTypes : true } ) || [ ] ;
1237
1236
for ( const dirent of dirents ) {
@@ -1259,7 +1258,7 @@ function complete(line, callback) {
1259
1258
}
1260
1259
}
1261
1260
}
1262
- }
1261
+ } ) ;
1263
1262
if ( group . length ) {
1264
1263
ArrayPrototypePush ( completionGroups , group ) ;
1265
1264
}
@@ -1269,7 +1268,7 @@ function complete(line, callback) {
1269
1268
}
1270
1269
} else if ( RegExpPrototypeTest ( fsAutoCompleteRE , line ) &&
1271
1270
this . allowBlockingCompletions ) {
1272
- [ completionGroups , completeOn ] = completeFSFunctions ( line ) ;
1271
+ ( { 0 : completionGroups , 1 : completeOn } = completeFSFunctions ( line ) ) ;
1273
1272
// Handle variable member lookup.
1274
1273
// We support simple chained expressions like the following (no function
1275
1274
// calls, etc.). That is for simplicity and also because we *eval* that
@@ -1282,7 +1281,7 @@ function complete(line, callback) {
1282
1281
// foo.<|> # completions for 'foo' with filter ''
1283
1282
} else if ( line . length === 0 ||
1284
1283
RegExpPrototypeTest ( / \w | \. | \$ / , line [ line . length - 1 ] ) ) {
1285
- const [ match ] = RegExpPrototypeExec ( simpleExpressionRE , line ) || [ '' ] ;
1284
+ const { 0 : match } = RegExpPrototypeExec ( simpleExpressionRE , line ) || [ '' ] ;
1286
1285
if ( line . length !== 0 && ! match ) {
1287
1286
completionGroupsLoaded ( ) ;
1288
1287
return ;
@@ -1352,11 +1351,11 @@ function complete(line, callback) {
1352
1351
1353
1352
if ( memberGroups . length ) {
1354
1353
expr += chaining ;
1355
- for ( const group of memberGroups ) {
1354
+ ArrayPrototypeForEach ( memberGroups , ( group ) => {
1356
1355
ArrayPrototypePush ( completionGroups ,
1357
1356
ArrayPrototypeMap ( group ,
1358
1357
( member ) => `${ expr } ${ member } ` ) ) ;
1359
- }
1358
+ } ) ;
1360
1359
if ( filter ) {
1361
1360
filter = `${ expr } ${ filter } ` ;
1362
1361
}
@@ -1375,37 +1374,38 @@ function complete(line, callback) {
1375
1374
// Filter, sort (within each group), uniq and merge the completion groups.
1376
1375
if ( completionGroups . length && filter ) {
1377
1376
const newCompletionGroups = [ ] ;
1378
- for ( const group of completionGroups ) {
1377
+ ArrayPrototypeForEach ( completionGroups , ( group ) => {
1379
1378
const filteredGroup = ArrayPrototypeFilter (
1380
1379
group ,
1381
1380
( str ) => StringPrototypeStartsWith ( str , filter )
1382
1381
) ;
1383
1382
if ( filteredGroup . length ) {
1384
1383
ArrayPrototypePush ( newCompletionGroups , filteredGroup ) ;
1385
1384
}
1386
- }
1385
+ } ) ;
1387
1386
completionGroups = newCompletionGroups ;
1388
1387
}
1389
1388
1390
1389
const completions = [ ] ;
1391
1390
// Unique completions across all groups.
1392
- const uniqueSet = new SafeSet ( [ '' ] ) ;
1391
+ const uniqueSet = new SafeSet ( ) ;
1392
+ uniqueSet . add ( '' ) ;
1393
1393
// Completion group 0 is the "closest" (least far up the inheritance
1394
1394
// chain) so we put its completions last: to be closest in the REPL.
1395
- for ( const group of completionGroups ) {
1395
+ ArrayPrototypeForEach ( completionGroups , ( group ) => {
1396
1396
ArrayPrototypeSort ( group , ( a , b ) => ( b > a ? 1 : - 1 ) ) ;
1397
1397
const setSize = uniqueSet . size ;
1398
- for ( const entry of group ) {
1398
+ ArrayPrototypeForEach ( group , ( entry ) => {
1399
1399
if ( ! uniqueSet . has ( entry ) ) {
1400
1400
ArrayPrototypeUnshift ( completions , entry ) ;
1401
1401
uniqueSet . add ( entry ) ;
1402
1402
}
1403
- }
1403
+ } ) ;
1404
1404
// Add a separator between groups.
1405
1405
if ( uniqueSet . size !== setSize ) {
1406
1406
ArrayPrototypeUnshift ( completions , '' ) ;
1407
1407
}
1408
- }
1408
+ } ) ;
1409
1409
1410
1410
// Remove obsolete group entry, if present.
1411
1411
if ( completions [ 0 ] === '' ) {
@@ -1569,14 +1569,13 @@ function defineDefaultCommands(repl) {
1569
1569
const longestNameLength = MathMax (
1570
1570
...ArrayPrototypeMap ( names , ( name ) => name . length )
1571
1571
) ;
1572
- for ( let n = 0 ; n < names . length ; n ++ ) {
1573
- const name = names [ n ] ;
1572
+ ArrayPrototypeForEach ( names , ( name ) => {
1574
1573
const cmd = this . commands [ name ] ;
1575
1574
const spaces =
1576
1575
StringPrototypeRepeat ( ' ' , longestNameLength - name . length + 3 ) ;
1577
1576
const line = `.${ name } ${ cmd . help ? spaces + cmd . help : '' } \n` ;
1578
1577
this . output . write ( line ) ;
1579
- }
1578
+ } ) ;
1580
1579
this . output . write ( '\nPress Ctrl+C to abort current expression, ' +
1581
1580
'Ctrl+D to exit the REPL\n' ) ;
1582
1581
this . displayPrompt ( ) ;
0 commit comments