@@ -76,7 +76,7 @@ addToLibrary({
7676      if  ( FS . isDir ( node . mode ) )  { 
7777        node . node_ops  =  MEMFS . ops_table . dir . node ; 
7878        node . stream_ops  =  MEMFS . ops_table . dir . stream ; 
79-         node . contents  =  { } ; 
79+         node . contents  =  new   Map ( ) ; 
8080      }  else  if  ( FS . isFile ( node . mode ) )  { 
8181        node . node_ops  =  MEMFS . ops_table . file . node ; 
8282        node . stream_ops  =  MEMFS . ops_table . file . stream ; 
@@ -95,7 +95,7 @@ addToLibrary({
9595      node . atime  =  node . mtime  =  node . ctime  =  Date . now ( ) ; 
9696      // add the new node to the parent 
9797      if  ( parent )  { 
98-         parent . contents [ name ]   =   node ; 
98+         parent . contents . set ( name ,   node ) ; 
9999        parent . atime  =  parent . mtime  =  parent . ctime  =  node . atime ; 
100100      } 
101101      return  node ; 
@@ -198,36 +198,30 @@ addToLibrary({
198198            new_node  =  FS . lookupNode ( new_dir ,  new_name ) ; 
199199          }  catch  ( e )  { 
200200          } 
201-           if  ( new_node )  { 
202-             for  ( var  i  in  new_node . contents )  { 
203-               throw  new  FS . ErrnoError ( { { {  cDefs . ENOTEMPTY  } } } ) ; 
204-             } 
201+           if  ( new_node  &&  new_node . contents . size )  { 
202+             throw  new  FS . ErrnoError ( { { {  cDefs . ENOTEMPTY  } } } ) ; 
205203          } 
206204        } 
207205        // do the internal rewiring 
208-         delete   old_node . parent . contents [ old_node . name ] ; 
209-         new_dir . contents [ new_name ]   =   old_node ; 
206+         old_node . parent . contents . delete ( old_node . name ) ; 
207+         new_dir . contents . set ( new_name ,   old_node ) ; 
210208        old_node . name  =  new_name ; 
211209        new_dir . ctime  =  new_dir . mtime  =  old_node . parent . ctime  =  old_node . parent . mtime  =  Date . now ( ) ; 
212210      } , 
213211      unlink ( parent ,  name )  { 
214-         delete   parent . contents [ name ] ; 
212+         parent . contents . delete ( name ) ; 
215213        parent . ctime  =  parent . mtime  =  Date . now ( ) ; 
216214      } , 
217215      rmdir ( parent ,  name )  { 
218216        var  node  =  FS . lookupNode ( parent ,  name ) ; 
219-         for   ( var   i   in   node . contents )  { 
217+         if   ( node . contents . size )  { 
220218          throw  new  FS . ErrnoError ( { { {  cDefs . ENOTEMPTY  } } } ) ; 
221219        } 
222220        delete  parent . contents [ name ] ; 
223221        parent . ctime  =  parent . mtime  =  Date . now ( ) ; 
224222      } , 
225223      readdir ( node )  { 
226-         var  entries  =  [ '.' ,  '..' ] ; 
227-         for  ( var  key  of  Object . keys ( node . contents ) )  { 
228-           entries . push ( key ) ; 
229-         } 
230-         return  entries ; 
224+         return  [ '.' ,  '..' ,  ...node . contents . keys ( ) ] ; 
231225      } , 
232226      symlink ( parent ,  newname ,  oldpath )  { 
233227        var  node  =  MEMFS . createNode ( parent ,  newname ,  0o777  |  { { {  cDefs . S_IFLNK  } } } ,  0 ) ; 
0 commit comments