On Mon, Oct 24, 2011 at 10:49 PM, Erik Arvidsson <a...@chromium.org> wrote:
> I think the point is that with the old one you could generate lots of > data, add that to the blob, generate a lot more data and add that to > the blob. After every add it might be safe to gc that data. With this > proposal all that data needs to be in memory at the point of > construction. > It doesn't. Each individual "low-level" Blob can be swapped to disk, and stay there; you don't need to read it into memory to construct new Blobs containing it. Repeating my earlier example: var b = new Blob(); ongotdataevent = function(blobToAppend) { b = new Blob(b, blobToAppend); } You don't need to have any of the previous Blobs in memory when you create each new compound Blob; you only need to know where to get them later, and their size. > Could we add a concat like method to Blob that returns a new "larger" blob? > > var bb = new BlobBuilder(); > bb.append(data); > bb.append(moreData); > var b = bb.getBlob(); > This is the same as the above: new Blob(data, moreData). There's no need for a special method for this. -- Glenn Maynard