:thinking_face: What if we made it an Error again?

This commit is contained in:
Felix Rieseberg 2017-11-18 00:51:14 -08:00
parent 1dea186a6e
commit 9a2d103e7f

View file

@ -112,6 +112,16 @@ const webFrameMethods = [
]
const webFrameMethodsWithResult = []
const errorConstructors = {
Error,
EvalError,
RangeError,
ReferenceError,
SyntaxError,
TypeError,
URIError
}
const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
return new Promise((resolve, reject) => {
this.send('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', requestId, method, args)
@ -119,9 +129,20 @@ const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
if (error == null) {
if (typeof callback === 'function') callback(result)
resolve(result)
} else {
if (error && error.__ELECTRON_SERIALIZED_ERROR__) {
let rehydratedError = error
if (errorConstructors[error.name]) {
rehydratedError = new errorConstructors[error.name](error.message)
rehydratedError.stack = error.stack
}
reject(rehydratedError);
} else {
reject(error)
}
}
})
})
}