rem: propArray.push(props); 
context:   pasteBookmark: function (aTarget)  {    const kXferableContractID = "@mozilla.org/widget/transferable;1";    const kXferableIID = Components.interfaces.nsITransferable;    var xferable = Components.classes[kXferableContractID].createInstance(kXferableIID);    xferable.addDataFlavor("moz/bookmarkclipboarditem");    xferable.addDataFlavor("text/x-moz-url");    xferable.addDataFlavor("text/unicode");    const kClipboardContractID = "@mozilla.org/widget/clipboard;1";    const kClipboardIID = Components.interfaces.nsIClipboard;    var clipboard = Components.classes[kClipboardContractID].getService(kClipboardIID);    clipboard.getData(xferable, kClipboardIID.kGlobalClipboard);        var flavour = { };    var data    = { };    var length  = { };    xferable.getAnyTransferData(flavour, data, length);    var items, name, url, childs, removedProps = [];    data = data.value.QueryInterface(Components.interfaces.nsISupportsString).data;    switch (flavour.value) {    case "moz/bookmarkclipboarditem":      var tmpItem = data.split("\n");      var sep = tmpItem.shift();      data = tmpItem.join("\n");      items = data.split(sep);      // since data are ended by separator, remove the last empty node      items.pop();       // convert propery from text string to array      var p = gBmProperties.length+1;      for (var i = 0; i < items.length; ++i) {        childs = items[i].split("\n");        childs.pop();        var childCount = childs.shift();        items[i] = RDF.GetResource(childs[0]);        var propArray = [];        for (var k = 0; k < childCount; ++k) {          var props = [RDF.GetResource(childs[p*k]), null, null, null, null, null, null];          for (var j = 1; j < p; ++j) {             var prop = childs[p*k+j];             if (prop)                 props[j] = RDF.GetLiteral(prop);          }          propArray.push(props);        }        removedProps.push(propArray);      }      break;    case "text/x-moz-url":      // there should be only one item in this case      var ix = data.indexOf("\n");      items = data.substring(0, ix != -1 ? ix : data.length);      name  = data.substring(ix);      // XXX: we should infer the best charset      var createdBookmarkResource = BookmarksUtils.createBookmark(null, items, null, name, null);      items = [createdBookmarkResource];      break;    default:       return;    }       var selection = {item: items, parent:Array(items.length), length: items.length, prop: removedProps};    BookmarksUtils.checkSelection(selection);    BookmarksUtils.insertAndCheckSelection("paste", selection, aTarget, -1);  },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/ada1ae10ff985620b903e1ff4996bba181525862/bookmarks.js/buggy/browser/components/bookmarks/content/bookmarks.js