rem: dump("#ERROR: sequence broken at row " + i + ", inputID=" + inputID + ", popupID=" + popupID + "\n"); break; } } 
add: dump("#ERROR: sequence broken at row " + i + ", inputID=" + inputID + ", popupID=" + popupID + "\n"); break; } } 
context: function awTestRowSequence(){  /*    This function is for debug and testing purpose only, normal user should not run it!        Everytime we insert or delete a row, we must be sure we didn't break the ID sequence of    the addressing widget rows. This function will run a quick test to see if the sequence still ok        You need to define the pref mail.debug.test_addresses_sequence to true in order to activate it  */  	if (! test_addresses_sequence)	  return true;   /* debug code to verify the sequence still good */	var body = document.getElementById('addressWidgetBody');	var treeitems = body.getElementsByTagName('treeitem');	if (treeitems.length == top.MAX_RECIPIENTS )	{	  for (var i = 1; i <= treeitems.length; i ++)	  {			var item = treeitems[i - 1];      var inputID = item.getElementsByTagName(awInputElementName())[0].getAttribute("id").split("#")[1];      var popupID = item.getElementsByTagName(awSelectElementName())[0].getAttribute("id").split("#")[1];      if (inputID != i || popupID != i)      {	      dump("#ERROR: sequence broken at row " + i + ", inputID=" + inputID + ", popupID=" + popupID + "\n");	      break;	    }		}    dump("---SEQUENCE OK---\n");    return true;			}	else	  dump("#ERROR: treeitems.length(" + treeitems.length + ") != top.MAX_RECIPIENTS(" + top.MAX_RECIPIENTS + ")\n");	return false;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/eaa6754a0a946375badf1165b3e4af3999e4b03c/addressingWidgetOverlay.js/clean/mailnews/compose/resources/content/addressingWidgetOverlay.js