🔧 Alex has good ideas
This commit is contained in:
parent
cf7e9df3a0
commit
5b18bea7e3
2 changed files with 15 additions and 19 deletions
|
@ -130,13 +130,9 @@ const asyncWebFrameMethods = function (requestId, method, callback, ...args) {
|
||||||
if (typeof callback === 'function') callback(result)
|
if (typeof callback === 'function') callback(result)
|
||||||
resolve(result)
|
resolve(result)
|
||||||
} else {
|
} else {
|
||||||
if (error && error.__ELECTRON_SERIALIZED_ERROR__) {
|
if (error.__ELECTRON_SERIALIZED_ERROR__ && errorConstructors[error.name]) {
|
||||||
let rehydratedError = error
|
const rehydratedError = new errorConstructors[error.name](error.message)
|
||||||
|
rehydratedError.stack = error.stack
|
||||||
if (errorConstructors[error.name]) {
|
|
||||||
rehydratedError = new errorConstructors[error.name](error.message)
|
|
||||||
rehydratedError.stack = error.stack
|
|
||||||
}
|
|
||||||
|
|
||||||
reject(rehydratedError)
|
reject(rehydratedError)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2514,15 +2514,15 @@ describe('BrowserWindow module', () => {
|
||||||
const code = `(() => "${expected}")()`
|
const code = `(() => "${expected}")()`
|
||||||
const asyncCode = `(() => new Promise(r => setTimeout(() => r("${expected}"), 500)))()`
|
const asyncCode = `(() => new Promise(r => setTimeout(() => r("${expected}"), 500)))()`
|
||||||
const badAsyncCode = `(() => new Promise((r, e) => setTimeout(() => e("${expectedErrorMsg}"), 500)))()`
|
const badAsyncCode = `(() => new Promise((r, e) => setTimeout(() => e("${expectedErrorMsg}"), 500)))()`
|
||||||
const errorCodes = {
|
const errorTypes = new Set([
|
||||||
Error: 'Promise.reject(new Error("Wamp-wamp"))',
|
Error,
|
||||||
ReferenceError: 'Promise.reject(new ReferenceError("Wamp-wamp"))',
|
ReferenceError,
|
||||||
EvalError: 'Promise.reject(new EvalError("Wamp-wamp"))',
|
EvalError,
|
||||||
RangeError: 'Promise.reject(new RangeError("Wamp-wamp"))',
|
RangeError,
|
||||||
SyntaxError: 'Promise.reject(new SyntaxError("Wamp-wamp"))',
|
SyntaxError,
|
||||||
TypeError: 'Promise.reject(new TypeError("Wamp-wamp"))',
|
TypeError,
|
||||||
URIError: 'Promise.reject(new URIError("Wamp-wamp"))'
|
URIError
|
||||||
}
|
])
|
||||||
|
|
||||||
it('doesnt throw when no calback is provided', () => {
|
it('doesnt throw when no calback is provided', () => {
|
||||||
const result = ipcRenderer.sendSync('executeJavaScript', code, false)
|
const result = ipcRenderer.sendSync('executeJavaScript', code, false)
|
||||||
|
@ -2571,11 +2571,11 @@ describe('BrowserWindow module', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
it('rejects the returned promise with an error if an Error.prototype is thrown', async () => {
|
it('rejects the returned promise with an error if an Error.prototype is thrown', async () => {
|
||||||
for (const errorKey in errorCodes) {
|
for (const error in errorTypes) {
|
||||||
await new Promise((resolve) => {
|
await new Promise((resolve) => {
|
||||||
ipcRenderer.send('executeJavaScript', errorCodes[errorKey], true)
|
ipcRenderer.send('executeJavaScript', `Promise.reject(new ${error.name}("Wamp-wamp")`, true)
|
||||||
ipcRenderer.once('executeJavaScript-promise-error-name', (event, name) => {
|
ipcRenderer.once('executeJavaScript-promise-error-name', (event, name) => {
|
||||||
assert.equal(name, errorKey)
|
assert.equal(name, error.name)
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue