Serialize errors before invoking postMessage

Serialize errors to make sure that the callback is still invoked when
an error is thrown.

Firefox:
"DataCloneError: The object could not be cloned."

Chrome:
"DataCloneError: Failed to execute 'postMessage' on 'WorkerGlobalScope': An object could not be cloned."
This commit is contained in:
Rob Wu 2015-08-08 21:41:33 +02:00
parent 26b9205c7e
commit 1e3078d6c4

View File

@ -1504,6 +1504,10 @@ function MessageHandler(name, comObj) {
data: result
});
}, function (reason) {
if (reason instanceof Error) {
// Serialize error to avoid "DataCloneError"
reason = reason + '';
}
comObj.postMessage({
isReply: true,
callbackId: data.callbackId,