diff --git a/toolkit/components/osfile/osfile_unix_allthreads.jsm b/toolkit/components/osfile/osfile_unix_allthreads.jsm index 9878eb196d4..ef2120b08eb 100644 --- a/toolkit/components/osfile/osfile_unix_allthreads.jsm +++ b/toolkit/components/osfile/osfile_unix_allthreads.jsm @@ -122,6 +122,24 @@ if (typeof Components != "undefined") { } }); + /** + * Serialize an instance of OSError to something that can be + * transmitted across threads (not necessarily a string). + */ + OSError.toMsg = function toMsg(error) { + return { + operation: error.operation, + unixErrno: error.unixErrno + }; + }; + + /** + * Deserialize a message back to an instance of OSError + */ + OSError.fromMsg = function fromMsg(msg) { + return new OSError(msg.operation, msg.unixErrno); + }; + exports.OS.Shared.Unix.Error = OSError; // Special constants that need to be defined on all platforms