rem: ksRDFC.RemoveElement(krNode, true); 
add: ksRDFC.RemoveElement(krBookmark, true);  aSelection.splice(count,1); 
context:   deleteSelection: function (aSelection)  {    dump("*** deleteSelection\n");    const kRDFCContractID = "@mozilla.org/rdf/container;1";    const kRDFCIID = Components.interfaces.nsIRDFContainer;    const ksRDFC = Components.classes[kRDFCContractID].getService(kRDFCIID);    var nextElement;    var count = 0;    var selectionLength = aSelection.length;    while (aSelection.length && aSelection[count]) {      const currParent = this.findRDFNode(aSelection[count], false);      const kSelectionURI = NODE_ID(aSelection[count]);      // Disallow the removal of certain 'special' nodes      if (kSelectionURI == "NC:BookmarksRoot" ||           kSelectionURI == "NC:IEFavoritesRoot") {        ++count;        continue;      }              const krParent = this.RDF.GetResource(NODE_ID(currParent));      const krNode = this.RDF.GetResource(kSelectionURI);      const kBMDS = this.RDF.GetDataSource("rdf:bookmarks");      ksRDFC.Init(kBMDS, krParent);      nextElement = this.getNextElement(aSelection[count]);      ksRDFC.RemoveElement(krNode, true);      try {        // XXX - UGH. Template builder is NOT removing the element from the        //       tree, and so selection remains non-zero in length and we go into        //       an infinite loop here. Tear the node out of the document.         var parent = aSelection[count].parentNode;        parent.removeChild(aSelection[count]);      }      catch (e) {      }    }    this.selectElement(nextElement);  },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/9de468a21823f4a20c760c16bb7cd5324cee136a/bookmarksOverlay.js/clean/xpfe/components/bookmarks/resources/bookmarksOverlay.js