First, they check if objects can be transferred:
https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L678

If it fails, they try to send the array (will be copied):
https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L682

If it fails, they disable the worker:
https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L692