The URL.createObjectURL() function allows you to create a temporary URL from a Blob. I am aware that this function can leak memory (until the page is unloaded), so that it is often important to call the corresponding revokeObjectURL() function to free the memory, especially if you're calling it in a loop. My question is not about such leaks, but instead about the memory overheads to createObjectURL() and the implications for when to call revokeObjectURL().
Most image Blobs would hold compressed data, which the browser of course needs to decompress in order to show the image. Does createObjectURL() create a thin wrapper around the Blob? Or does it decompress the image and then stores the full bitmap data until revokeObjectURL() is called? Or perhaps it makes its own immutable copy of the data so that changes to the Blob's data don't affect it? (Blobs are immutable so there'd be no reason to make a copy.)
In my case I'll still be holding the Blob in memory, and so if createObjectURL() only makes a thin wrapper then I could keep the object URL in case I need to use it more than once. But if the overhead is high because it owns a large block of memory then I'd want to revoke it immediately after it's used.