322 lines
12 KiB
JavaScript
322 lines
12 KiB
JavaScript
// Module ID: 1016
|
|
// Function ID: 1017
|
|
// Name: reactNativeErrorHandlersIntegration
|
|
// Dependencies: [1002, 816, 817, 813, 1017]
|
|
|
|
// Module 1016 (reactNativeErrorHandlersIntegration)
|
|
import createSyntheticError from "createSyntheticError" /* 813 */;
|
|
import registerSpanErrorInstrumentation from "registerSpanErrorInstrumentation" /* 817 */;
|
|
|
|
require = arg1;
|
|
const dependencyMap = arg6;
|
|
let fn = this;
|
|
if (this) {
|
|
fn = this.__awaiter;
|
|
}
|
|
if (!fn) {
|
|
fn = (arg0, arg1, arg2, arg3) => {
|
|
closure_0 = arg0;
|
|
closure_1 = arg1;
|
|
let _Promise = arg2;
|
|
closure_3 = arg3;
|
|
if (!arg2) {
|
|
_Promise = Promise;
|
|
}
|
|
_Promise = new _Promise((arg0, arg1) => {
|
|
closure_0 = arg0;
|
|
closure_1 = arg1;
|
|
function fulfilled(arg0) {
|
|
try {
|
|
step(iter.next(arg0));
|
|
} catch (tmp5) {
|
|
callback2(tmp5);
|
|
}
|
|
}
|
|
function rejected(arg0) {
|
|
try {
|
|
step(iter.throw(arg0));
|
|
} catch (tmp5) {
|
|
callback2(tmp5);
|
|
}
|
|
}
|
|
let iter = rejected;
|
|
function step(done) {
|
|
if (done.done) {
|
|
callback(done.value);
|
|
} else {
|
|
let tmp = done.value;
|
|
callback = tmp;
|
|
if (!(tmp instanceof fulfilled)) {
|
|
tmp = new tmp((arg0) => {
|
|
arg0(closure_0);
|
|
});
|
|
}
|
|
tmp.then(fulfilled, iter);
|
|
}
|
|
}
|
|
let items = closure_1;
|
|
if (!closure_1) {
|
|
items = [];
|
|
}
|
|
iter = iter.apply(closure_0, items);
|
|
const iter2 = iter.next();
|
|
const value = iter2.value;
|
|
if (iter2.done) {
|
|
arg0(value);
|
|
} else {
|
|
closure_0 = value;
|
|
let tmp3 = value;
|
|
if (!(value instanceof fulfilled)) {
|
|
tmp3 = new tmp3((arg0) => {
|
|
arg0(closure_0);
|
|
});
|
|
}
|
|
tmp3.then(fulfilled, rejected);
|
|
}
|
|
});
|
|
return _Promise;
|
|
};
|
|
}
|
|
let obj = {
|
|
onUnhandled(id, originalException) {
|
|
obj = registerSpanErrorInstrumentation;
|
|
obj = { data: obj, originalException, syntheticException: null, mechanism: null };
|
|
obj = { id };
|
|
let syntheticError;
|
|
if (!obj4.isErrorLike(originalException)) {
|
|
syntheticError = createSyntheticError.createSyntheticError();
|
|
const tmpResult = createSyntheticError;
|
|
}
|
|
obj[2] = syntheticError;
|
|
obj[3] = { handled: true, type: "onunhandledrejection" };
|
|
obj.captureException(originalException, obj);
|
|
},
|
|
onHandled(displayId, error) {
|
|
|
|
}
|
|
};
|
|
arg5.reactNativeErrorHandlersIntegration = () => {
|
|
obj = arg0;
|
|
if (arg0 === undefined) {
|
|
obj = {};
|
|
}
|
|
obj = {
|
|
name: "ReactNativeErrorHandlers",
|
|
setupOnce() {
|
|
const merged = Object.assign({ onerror: true, onunhandledrejection: true, patchGlobalPromise: true }, c0);
|
|
if (merged.onunhandledrejection) {
|
|
(function setupUnhandledRejectionsTracking(patchGlobalPromise) {
|
|
try {
|
|
obj = callback(_undefined[0]);
|
|
if (obj.isHermesEnabled()) {
|
|
let _HermesInternal = tmp3(tmp5[1]).RN_GLOBAL_OBJ.HermesInternal;
|
|
let prop;
|
|
if (null !== _HermesInternal) {
|
|
if (undefined !== tmp8) {
|
|
prop = _HermesInternal.enablePromiseRejectionTracker;
|
|
}
|
|
}
|
|
if (prop) {
|
|
_HermesInternal = undefined;
|
|
if (null !== tmp3(tmp5[1]).RN_GLOBAL_OBJ) {
|
|
if (undefined !== tmp3(tmp5[1]).RN_GLOBAL_OBJ) {
|
|
_HermesInternal = tmp3(tmp5[1]).RN_GLOBAL_OBJ.HermesInternal;
|
|
}
|
|
}
|
|
let hasPromise;
|
|
if (null !== _HermesInternal) {
|
|
if (undefined !== tmp19) {
|
|
hasPromise = tmp19.hasPromise;
|
|
}
|
|
}
|
|
if (null !== hasPromise) {
|
|
if (undefined !== tmp23) {
|
|
const call = tmp23.call;
|
|
if (typeof call === "unknown") {
|
|
let callResult = tmp23();
|
|
} else {
|
|
callResult = call(_HermesInternal);
|
|
}
|
|
}
|
|
}
|
|
if (undefined) {
|
|
const debug3 = tmp3(tmp5[2]).debug;
|
|
debug3.log("Using Hermes native promise rejection tracking");
|
|
const _HermesInternal2 = tmp3(tmp5[1]).RN_GLOBAL_OBJ.HermesInternal;
|
|
obj = { allRejections: true, onUnhandled: null, onHandled: null };
|
|
({ onUnhandled: obj6[1], onHandled: obj6[2] } = closure_3);
|
|
let result = _HermesInternal2.enablePromiseRejectionTracker(obj);
|
|
const debug4 = tmp3(tmp5[2]).debug;
|
|
debug4.log("Unhandled promise rejections will be caught by Sentry.");
|
|
}
|
|
}
|
|
}
|
|
let tmp3Result = tmp3(tmp5[0]);
|
|
if (tmp3Result.isWeb()) {
|
|
const debug2 = tmp3(tmp5[2]).debug;
|
|
debug2.log("Using Browser JS promise rejection tracking for React Native Web");
|
|
tmp3Result = tmp3(tmp5[2]);
|
|
const result1 = tmp3Result.addGlobalUnhandledRejectionInstrumentationHandler((originalException) => {
|
|
obj = callback(817);
|
|
obj = { originalException, syntheticException: null, mechanism: null };
|
|
let syntheticError;
|
|
if (!obj3.isErrorLike(originalException)) {
|
|
syntheticError = callback(813).createSyntheticError();
|
|
const tmpResult = callback(813);
|
|
}
|
|
obj[1] = syntheticError;
|
|
obj[2] = { handled: false, type: "onunhandledrejection" };
|
|
obj.captureException(originalException, obj);
|
|
});
|
|
} else if (patchGlobalPromise) {
|
|
tmp3(tmp5[4]).polyfillPromise();
|
|
(function attachUnhandledRejectionHandler() {
|
|
obj = callback(1017);
|
|
const result = obj.requireRejectionTracking();
|
|
obj = { allRejections: true, onUnhandled: closure_3.onUnhandled, onHandled: closure_3.onHandled };
|
|
result.enable(obj);
|
|
})();
|
|
const tmp3Result1 = tmp3(tmp5[4]);
|
|
tmp3(tmp5[4]).checkPromiseAndWarn();
|
|
const tmp3Result2 = tmp3(tmp5[4]);
|
|
} else {
|
|
const debug = tmp3(tmp5[2]).debug;
|
|
debug.log("Unhandled promise rejections will not be caught by Sentry.");
|
|
}
|
|
} catch (err) {
|
|
const debug5 = callback(_undefined[2]).debug;
|
|
debug5.warn("Failed to set up promise rejection tracking. Unhandled promise rejections will not be caught by Sentry.See https://docs.sentry.io/platforms/react-native/troubleshooting/ for more details.");
|
|
}
|
|
})(merged.patchGlobalPromise);
|
|
}
|
|
if (merged.onerror) {
|
|
c0 = false;
|
|
const _ErrorUtils = obj(closure_1_1[1]).RN_GLOBAL_OBJ.ErrorUtils;
|
|
if (_ErrorUtils) {
|
|
if (null !== _ErrorUtils.getGlobalHandler) {
|
|
if (undefined !== getGlobalHandler) {
|
|
let call = getGlobalHandler.call;
|
|
typeof call === "unknown" ? getGlobalHandler() : call(_ErrorUtils);
|
|
}
|
|
}
|
|
c1 = tmp7;
|
|
_ErrorUtils.setGlobalHandler((arg0, arg1) => {
|
|
closure_0 = arg0;
|
|
closure_1 = arg1;
|
|
return closure_1_2(undefined, undefined, undefined, function*() {
|
|
if (c3 === 2) {
|
|
c3 = 3;
|
|
HermesBuiltin.throwTypeError();
|
|
} else if (tmp4 === 3) {
|
|
if (arg0 === 1) {
|
|
throw arg1;
|
|
} else if (arg0 === 2) {
|
|
obj = { value: null, done: true };
|
|
obj[0] = arg1;
|
|
return obj;
|
|
} else {
|
|
return { value: "HermesInternal", done: "HermesInternal" };
|
|
}
|
|
} else {
|
|
try {
|
|
c3 = 2;
|
|
if (0 === closure_2) {
|
|
if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw arg1;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
obj = { value: null, done: true };
|
|
obj[0] = arg1;
|
|
return obj;
|
|
} else {
|
|
let obj2 = 0;
|
|
let client = tmp2;
|
|
client = undefined;
|
|
obj2 = undefined;
|
|
closure_2 = undefined;
|
|
if (closure_1_1) {
|
|
if (c0) {
|
|
const debug2 = _true(817).debug;
|
|
debug2.log("Encountered multiple fatals in a row. The latest:", c0);
|
|
c3 = 3;
|
|
obj1 = { value: null, done: true };
|
|
obj1[0] = undefined;
|
|
return obj1;
|
|
} else {
|
|
c0 = true;
|
|
}
|
|
}
|
|
let obj3 = _true(817);
|
|
client = obj3.getClient();
|
|
if (client) {
|
|
obj2 = { originalException: null, attachments: null };
|
|
obj2[0] = c0;
|
|
const currentScope = _true(817).getCurrentScope();
|
|
obj2[1] = currentScope.getScopeData().attachments;
|
|
closure_2 = 1;
|
|
c3 = 1;
|
|
obj3 = { value: null, done: false };
|
|
obj3[0] = client.eventFromException(c0, obj2);
|
|
return obj3;
|
|
} else {
|
|
let debug = _true(817).debug;
|
|
debug.error("Sentry client is missing, the error event might be lost.", c0);
|
|
closure_1_1(c0, closure_1_1);
|
|
c3 = 3;
|
|
const obj4 = { value: null, done: true };
|
|
obj4[0] = undefined;
|
|
return obj4;
|
|
}
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw arg1;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj5 = { value: null, done: true };
|
|
obj5[0] = arg1;
|
|
return obj5;
|
|
} else {
|
|
closure_2 = arg1;
|
|
if (obj2) {
|
|
tmp49.level = "fatal";
|
|
obj1 = _true(817);
|
|
const result = obj1.addExceptionMechanism(closure_2, { handled: false, type: "onerror" });
|
|
} else {
|
|
tmp49.level = "error";
|
|
obj = _true(817);
|
|
const result1 = obj.addExceptionMechanism(closure_2, { handled: true, type: "generic" });
|
|
}
|
|
client.captureEvent(closure_2, obj2);
|
|
let num3 = client.getOptions().shutdownTimeout;
|
|
if (!num3) {
|
|
num3 = 2000;
|
|
}
|
|
client.flush(num3).then(() => {
|
|
obj2(client, obj2);
|
|
}, (arg0) => {
|
|
const debug = client(obj2[2]).debug;
|
|
debug.error("[ReactNativeErrorHandlers] Error while flushing the event cache after uncaught error.", arg0);
|
|
});
|
|
c3 = 3;
|
|
return { value: "HermesInternal", done: "HermesInternal" };
|
|
}
|
|
} catch (tmp40) {
|
|
c3 = tmp;
|
|
throw tmp40;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
let debug = tmp3(tmp4[2]).debug;
|
|
debug.warn("ErrorUtils not found. Can be caused by different environment for example react-native-web.");
|
|
}
|
|
tmp3 = obj;
|
|
tmp4 = closure_1_1;
|
|
}
|
|
}
|
|
};
|
|
return obj;
|
|
};
|