@@ -1301,12 +1301,7 @@ StatWatcher.prototype.stop = function() {
1301
1301
} ;
1302
1302
1303
1303
1304
- var statWatchers = { } ;
1305
- function inStatWatchers ( filename ) {
1306
- return Object . prototype . hasOwnProperty . call ( statWatchers , filename ) &&
1307
- statWatchers [ filename ] ;
1308
- }
1309
-
1304
+ const statWatchers = new Map ( ) ;
1310
1305
1311
1306
fs . watchFile = function ( filename ) {
1312
1307
nullCheck ( filename ) ;
@@ -1333,22 +1328,24 @@ fs.watchFile = function(filename) {
1333
1328
throw new Error ( 'watchFile requires a listener function' ) ;
1334
1329
}
1335
1330
1336
- if ( inStatWatchers ( filename ) ) {
1337
- stat = statWatchers [ filename ] ;
1338
- } else {
1339
- stat = statWatchers [ filename ] = new StatWatcher ( ) ;
1331
+ stat = statWatchers . get ( filename ) ;
1332
+
1333
+ if ( stat === undefined ) {
1334
+ stat = new StatWatcher ( ) ;
1340
1335
stat . start ( filename , options . persistent , options . interval ) ;
1336
+ statWatchers . set ( filename , stat ) ;
1341
1337
}
1338
+
1342
1339
stat . addListener ( 'change' , listener ) ;
1343
1340
return stat ;
1344
1341
} ;
1345
1342
1346
1343
fs . unwatchFile = function ( filename , listener ) {
1347
1344
nullCheck ( filename ) ;
1348
1345
filename = pathModule . resolve ( filename ) ;
1349
- if ( ! inStatWatchers ( filename ) ) return ;
1346
+ var stat = statWatchers . get ( filename ) ;
1350
1347
1351
- var stat = statWatchers [ filename ] ;
1348
+ if ( stat === undefined ) return ;
1352
1349
1353
1350
if ( typeof listener === 'function' ) {
1354
1351
stat . removeListener ( 'change' , listener ) ;
@@ -1358,7 +1355,7 @@ fs.unwatchFile = function(filename, listener) {
1358
1355
1359
1356
if ( EventEmitter . listenerCount ( stat , 'change' ) === 0 ) {
1360
1357
stat . stop ( ) ;
1361
- statWatchers [ filename ] = undefined ;
1358
+ statWatchers . delete ( filename ) ;
1362
1359
}
1363
1360
} ;
1364
1361
0 commit comments