> We are talking about browsers that support Workers but don't support sending byte arrays - how much are they being used?

That is your homework to do. :-) Research and report back. :-)

> We can end up with too many edge cases, and it will be hard to read, maintain and write tests for everything.

I agree, but this could be just one function with which you wrap a message before sending to worker and one function which receives. And it serializes or not, if necessary.

Maybe a meta point which I am trying to make is that I am lacking arguments/data why we would do one or another. So I would like to see links to a standard (I made link above), links to some information about where people are saying that workers/sending typed arrays/using `createObjectURL` is supported, in which versions and which browsers, link to PDF.js code which deals with that (not testing, but what it does once it discovers that you cannot pass typed array directly) and then we can see how complex this is.

And yes, I would like to support all browsers PDF.js is supporting. Of course if it is not too hard. But to make this decisions I would like to see some research/homework to be done, with links in arguments.