diff --git a/src/workerfarm/errorUtils.js b/src/workerfarm/errorUtils.js index fd7de98d092..f6dd3a7e542 100644 --- a/src/workerfarm/errorUtils.js +++ b/src/workerfarm/errorUtils.js @@ -1,22 +1,30 @@ function errorToJson(error) { - let jsonError = { - message: error.message, - stack: error.stack, - name: error.name - }; - // Add all custom codeFrame properties - Object.keys(error).forEach(key => { - jsonError[key] = error[key]; - }); - return jsonError; + if (typeof error === 'string') { + return {message: error}; + } + + if (error instanceof Error) { + let jsonError = { + message: error.message, + stack: error.stack, + name: error.name + }; + // Add all custom codeFrame properties + Object.keys(error).forEach(key => { + jsonError[key] = error[key]; + }); + return jsonError; + } } function jsonToError(json) { - let error = new Error(json.message); - Object.keys(json).forEach(key => { - error[key] = json[key]; - }); - return error; + if (json) { + let error = new Error(json.message); + Object.keys(json).forEach(key => { + error[key] = json[key]; + }); + return error; + } } exports.errorToJson = errorToJson;