bg error isn't necessarily an Error
This commit is contained in:
parent
b132fecbcd
commit
d17036ed5b
10
js/msg.js
10
js/msg.js
|
@ -139,12 +139,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function unwrapResponseFactory(name) {
|
function unwrapResponseFactory(name) {
|
||||||
|
// Saving the local callstack before making an async call
|
||||||
return unwrapResponse.bind(null, new Error(`Callstack before invoking msg.${name}:`));
|
return unwrapResponse.bind(null, new Error(`Callstack before invoking msg.${name}:`));
|
||||||
}
|
}
|
||||||
|
|
||||||
function unwrapResponse(localErr, {data, error} = {error: {message: ERR_NO_RECEIVER}}) {
|
function unwrapResponse(localErr, {data, error} = {error: {message: ERR_NO_RECEIVER}}) {
|
||||||
return error
|
return error
|
||||||
? Promise.reject(Object.assign(localErr, error, {
|
? Promise.reject(Object.assign(localErr, error, error.stack && {
|
||||||
stack: `${error.stack}\n${localErr.stack}`,
|
stack: `${error.stack}\n${localErr.stack}`,
|
||||||
}))
|
}))
|
||||||
: data;
|
: data;
|
||||||
|
@ -164,6 +165,7 @@
|
||||||
if (!bg) {
|
if (!bg) {
|
||||||
return msg.send(message);
|
return msg.send(message);
|
||||||
}
|
}
|
||||||
|
// Saving the local callstack before making an async call
|
||||||
const err = new Error(`Callstack before invoking API.${path.join('.')}:`);
|
const err = new Error(`Callstack before invoking API.${path.join('.')}:`);
|
||||||
try {
|
try {
|
||||||
return deepMerge(await bg.msg._execute(TARGETS.extension, message, {
|
return deepMerge(await bg.msg._execute(TARGETS.extension, message, {
|
||||||
|
@ -171,9 +173,9 @@
|
||||||
tab: NEEDS_TAB_IN_SENDER.includes(path.join('.')) && await getOwnTab(),
|
tab: NEEDS_TAB_IN_SENDER.includes(path.join('.')) && await getOwnTab(),
|
||||||
url: location.href,
|
url: location.href,
|
||||||
}));
|
}));
|
||||||
} catch (bgError) {
|
} catch (bgErr) {
|
||||||
err.stack = `${bgError.stack}\n${err.stack}`;
|
if (bgErr.stack) err.stack = `${bgErr.stack}\n${err.stack}`;
|
||||||
err.message = bgError.message;
|
err.message = bgErr.message || `${bgErr}`;
|
||||||
// Not using `throw` to avoid pausing debugger when it's configured to pause on exceptions
|
// Not using `throw` to avoid pausing debugger when it's configured to pause on exceptions
|
||||||
return Promise.reject(err);
|
return Promise.reject(err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
const promisify = function (fn, ...args) {
|
const promisify = function (fn, ...args) {
|
||||||
let res;
|
let res;
|
||||||
let resolve, reject;
|
let resolve, reject;
|
||||||
|
// Saving the local callstack before making an async call
|
||||||
const err = new Error();
|
const err = new Error();
|
||||||
try {
|
try {
|
||||||
args.push((...results) => {
|
args.push((...results) => {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user