@@ -191,18 +191,18 @@ addToLibrary({
191191 return MEMFS . createNode ( parent , name , mode , dev ) ;
192192 } ,
193193 rename ( old_node , new_dir , new_name ) {
194- // if we're overwriting a directory at new_name, make sure it's empty.
195- if ( FS . isDir ( old_node . mode ) ) {
196- var new_node ;
197- try {
198- new_node = FS . lookupNode ( new_dir , new_name ) ;
199- } catch ( e ) {
200- }
201- if ( new_node ) {
194+ var new_node ;
195+ try {
196+ new_node = FS . lookupNode ( new_dir , new_name ) ;
197+ } catch ( e ) { }
198+ if ( new_node ) {
199+ if ( FS . isDir ( old_node . mode ) ) {
200+ // if we're overwriting a directory at new_name, make sure it's empty.
202201 for ( var i in new_node . contents ) {
203202 throw new FS . ErrnoError ( { { { cDefs . ENOTEMPTY } } } ) ;
204203 }
205204 }
205+ FS . hashRemoveNode ( new_node ) ;
206206 }
207207 // do the internal rewiring
208208 delete old_node . parent . contents [ old_node . name ] ;
@@ -223,11 +223,7 @@ addToLibrary({
223223 parent . ctime = parent . mtime = Date . now ( ) ;
224224 } ,
225225 readdir ( node ) {
226- var entries = [ '.' , '..' ] ;
227- for ( var key of Object . keys ( node . contents ) ) {
228- entries . push ( key ) ;
229- }
230- return entries ;
226+ return [ '.' , '..' , ...Object . keys ( node . contents ) ] ;
231227 } ,
232228 symlink ( parent , newname , oldpath ) {
233229 var node = MEMFS . createNode ( parent , newname , 0o777 | { { { cDefs . S_IFLNK } } } , 0 ) ;
0 commit comments