rem: else if (currentSubFolder.getNumUnread(true /* descend */) > 0) { dump("if the child doesn't have any unread, but it's children do, recurse\n"); return FindNextFolder(currentSubFolder.URI); }  
context: function FindNextFolder(originalFolderURI){    if (!originalFolderURI) return null;    var originalFolderResource = RDF.GetResource(originalFolderURI);    var folder = originalFolderResource.QueryInterface(Components.interfaces.nsIFolder);    if (!folder) return null;    dump("folder = " + folder.URI + "\n");    try {       var subFolderEnumerator = folder.GetSubFolders();       var done = false;       while (!done) {         var element = subFolderEnumerator.currentItem();         var currentSubFolder = element.QueryInterface(Components.interfaces.nsIMsgFolder);         dump("current folder = " + currentSubFolder.URI + "\n");         if (currentSubFolder.getNumUnread(false /* don't descend */) > 0) {           dump("if the child has unread, use it.\n");           return currentSubFolder.URI;         }         else if (currentSubFolder.getNumUnread(true /* descend */) > 0) {           dump("if the child doesn't have any unread, but it's children do, recurse\n");           return FindNextFolder(currentSubFolder.URI);         }         try {           subFolderEnumerator.next();         }          catch (ex) {           done=true;         }      } // while    }    catch (ex) {        // one way to get here is if the folder has no sub folders    }     if (folder.parent && folder.parent.URI) {      dump("parent = " + folder.parent.URI + "\n");      return FindNextFolder(folder.parent.URI);    }    else {      dump("no parent\n");    }    return null;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/d00f52b6c551b3a854435d466c8bc003e16e2c6d/msgViewNavigation.js/buggy/mailnews/base/resources/content/msgViewNavigation.js