rem: if (slot.tokenName) slotnames[slotnames.length] = slot.tokenName; else slotnames[slotnames.length] = slot.name; 
add: if (slot != null) { if (slot.tokenName) slotnames[slotnames.length] = slot.tokenName; else slotnames[slotnames.length] = slot.name; } 
context: function LoadModules(){  bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");  secmoddb = Components.classes[nsPKCS11ModuleDB].getService(nsIPKCS11ModuleDB);  var modules = secmoddb.listModules();  var done = false;  try {    modules.isDone();  } catch (e) { done = true; }  while (!done) {    var module = modules.currentItem().QueryInterface(nsIPKCS11Module);    if (module) {      var slotnames = [];      var slots = module.listSlots();      var slots_done = false;      try {        slots.isDone();      } catch (e) { slots_done = true; }      while (!slots_done) {        var slot = slots.currentItem().QueryInterface(nsIPKCS11Slot);        // in the ongoing discussion of whether slot names or token names        // are to be shown, I've gone with token names because NSS will        // prefer lookup by token name.  However, the token may not be        // present, so maybe slot names should be listed, while token names        // are "remembered" for lookup?        if (slot.tokenName)          slotnames[slotnames.length] = slot.tokenName;        else          slotnames[slotnames.length] = slot.name;        try {          slots.next();        } catch (e) { slots_done = true; }      }      AddModule(module.name, slotnames);    }    try {      modules.next();    } catch (e) { done = true; }  }  /* Set the text on the fips button */  SetFIPSButtonText();}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/68553d59ddf438271d08c17be74af2d1b03d0bb4/device_manager.js/clean/security/manager/pki/resources/content/device_manager.js