rem: if (!f.isHidden()) 
add: var name = f.leafName; if (!f.isHidden() && (name.charAt(name.length - 1) != HIDDEN_CHAR || name.charAt(name.length - 2) == HIDDEN_CHAR)) 
context: function defaultIndexHandler(metadata, response){  response.setHeader("Content-Type", "text/html", false);  var path = htmlEscape(metadata.path);  //  // Just do a very basic bit of directory listings -- no need for too much  // fanciness, especially since we don't have a style sheet in which we can  // stick rules (don't want to pollute the default path-space).  //  var body = '<html>\                <head>\                  <title>' + path + '</title>\                </head>\                <body>\                  <h1>' + path + '</h1>\                  <ol style="list-style-type: none">';  var directory = metadata.getProperty("directory");  NS_ASSERT(directory && directory.isDirectory());  var fileList = [];  var files = directory.directoryEntries;  while (files.hasMoreElements())  {    var f = files.getNext().QueryInterface(Ci.nsIFile);    if (!f.isHidden())      fileList.push(f);  }  fileList.sort(fileSort);  for (var i = 0; i < fileList.length; i++)  {    var file = fileList[i];    try    {      var name = file.leafName;      var sep = file.isDirectory() ? "/" : "";      // Note: using " to delimit the attribute here because encodeURIComponent      //       passes through '.      var item = '<li><a href="' + encodeURIComponent(name) + sep + '">' +                   htmlEscape(name) + sep +                 '</a></li>';      body += item;    }    catch (e) { /* some file system error, ignore the file */ }  }  body    += '    </ol>\                </body>\              </html>';  response.bodyOutputStream.write(body, body.length);}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/2b27fe648e2bcfc8a9287920102eb35070e9fb5d/httpd.js/clean/netwerk/test/httpserver/httpd.js