rem: if (accountValues[type][slot]== undefined) { 
add: if (!(slot in accountValues[type]) || !accountValues[type][slot]) { 
context: function getAccountValue(account, accountValues, type, slot, preftype, isGeneric) {  if (!accountValues[type])    accountValues[type] = new Array;  // fill in the slot from the account if necessary  if (accountValues[type][slot]== undefined) {    // dump("Array->Form: lazily reading in the " + slot + " from the " + type + "\n");    var server;    if (account)      server= account.incomingServer;    var source = null;    try {    if (type == "identity")      source = account.defaultIdentity;    else if (type == "server")      source = account.incomingServer;    else if (type == "pop3")      source = server.QueryInterface(Components.interfaces.nsIPop3IncomingServer);    else if (type == "imap")      source = server.QueryInterface(Components.interfaces.nsIImapIncomingServer);    else if (type == "none")      source = server.QueryInterface(Components.interfaces.nsINoIncomingServer);    else if (type == "nntp")      source = server.QueryInterface(Components.interfaces.nsINntpIncomingServer);    else if (type == "smtp")        source = smtpService.defaultServer;    } catch (ex) {    }    if (source) {      if (isGeneric) {        if (!gGenericAttributeTypes[type])          gGenericAttributeTypes[type] = new Array;        // we need the preftype later, for setting when we save.        gGenericAttributeTypes[type][slot] = preftype;        switch (preftype) {          case "int":            accountValues[type][slot] = source.getIntAttribute(slot);            break;          case "wstring":            accountValues[type][slot] = source.getUnicharAttribute(slot);            break;          case "string":            accountValues[type][slot] = source.getCharAttribute(slot);            break;          case "bool":            accountValues[type][slot] = source.getBoolAttribute(slot);            break;          default:            dump("unexpected preftype: " + preftype + "\n");            break;          }      }      else {      accountValues[type][slot] = source[slot];    }  }  }  var value = accountValues[type][slot];  //dump("Array->Form: accountValues[" + type + "][" + slot + "] = " + value + "\n");  return value;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/0cd2634928600ba1fd1aa18c4889432a3fb7b444/AccountManager.js/buggy/mailnews/base/prefs/resources/content/AccountManager.js