add:  var selections = GetTreeSelections(tree); for (var s=selections.length-1; s>= 0; s--) { var i = selections[s]; deletedTable[deletedTable.length] = table[i]; table[i] = null; } 
context: function DeleteSelectedItemFromTree    (tree, view, table, deletedTable, removeButton, removeAllButton) {  var box = tree.treeBoxObject;  // Remove selected items from list (by setting them to null) and place in  // deleted list.  At the same time, notify the tree of the row count changes.  var selection = box.view.selection;  var oldSelectStart = table.length;  box.beginUpdateBatch();  var selCount = selection.getRangeCount();  var min = new Object();  var max = new Object();  for (var s = 0; s < selCount; ++s) {    selection.getRangeAt(s, min, max);    var minVal = min.value;    var maxVal = max.value;    oldSelectStart = minVal < oldSelectStart ? minVal : oldSelectStart;    var rowCount = maxVal - minVal + 1;    view.rowCount -= rowCount;    box.rowCountChanged(minVal, -rowCount);    for (var i = minVal; i <= maxVal; ++i) {      deletedTable[deletedTable.length] = table[i];      table[i] = null;    }  }  // collapse list by removing all the null entries  for (var j = 0; j < table.length; ++j) {    if (!table[j]) {      var k = j;      while (k < table.length && !table[k])        k++;      table.splice(j, k-j);    }  }  box.endUpdateBatch();  // update selection and/or buttons  var removeBtn = document.getElementById(removeButton);  var removeAllBtn = document.getElementById(removeAllButton);  if (table.length) {    removeBtn.removeAttribute("disabled");    removeAllBtn.removeAttribute("disabled");    selection.select(oldSelectStart < table.length ? oldSelectStart : table.length - 1);  } else {    removeBtn.setAttribute("disabled", "true");    removeAllBtn.setAttribute("disabled", "true");  }}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/27edf76fc08be1d9d829e3d12110b59ffb61a73e/passwordManagerCommon.js/buggy/toolkit/components/passwordmgr/content/passwordManagerCommon.js