rem: let delay = Math.min(gDownloadsView.itemCount, gListBuildDelay); 
add: let delay = Math.min(gDownloadsView.itemCount * 10, gListBuildDelay); 
context: function stepListBuilder(aNumItems) {  try {    // If we're done adding all items, we can quit    if (!gStmt.executeStep())      return;    // Try to get the attribute values from the statement    let attrs = {      dlid: gStmt.getInt64(0),      file: gStmt.getString(1),      target: gStmt.getString(2),      uri: gStmt.getString(3),      state: gStmt.getInt32(4),      startTime: Math.round(gStmt.getInt64(5) / 1000),      endTime: Math.round(gStmt.getInt64(6) / 1000),      currBytes: gStmt.getInt64(8),      maxBytes: gStmt.getInt64(9)    };    // Only add the referrer if it's not null    let (referrer = gStmt.getString(7)) {      if (referrer)        attrs.referrer = referrer;    }    // If the download is active, grab the real progress, otherwise default 100    attrs.progress = gStmt.getInt32(10) ?      gDownloadManager.getDownload(attrs.dlid).percentComplete : 100;    // Make the item and add it to the end    let item = createDownloadItem(attrs);    if (item) {      // Add item to the end and color just that one item      gDownloadsView.appendChild(item);      stripeifyList(item);    }  } catch (e) {    // Something went wrong when stepping or getting values, so clear and quit    gStmt.reset();    return;  }  // Add another item to the list if we should; otherwise, let the UI update  // and continue later  if (aNumItems > 1) {    stepListBuilder(aNumItems - 1);  } else {    // Use a shorter delay for earlier downloads to display them faster    let delay = Math.min(gDownloadsView.itemCount, gListBuildDelay);    gBuilder = setTimeout(stepListBuilder, delay, gListBuildChunk);  }}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/332a7a5f2121c0c0e43a4f80254889aa41b0da16/downloads.js/clean/toolkit/mozapps/downloads/content/downloads.js