Files
discord-decomp/sources/by-id/module-01172.jsx
T
2026-07-27 16:20:00 +03:00

579 lines
23 KiB
React

/* Metro module 1172; source: unknown; dependencies: [57, 27, 826, 1130, 1164, 1167] */
function _fun13029(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#13029, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:6, offset: 0x00dde370, size: 106 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(57) /* metro dependency 57 */;
const env0_3 = (require(27) /* metro dependency 27 */).AppState;
exports.stallTrackingIntegration = stallTrackingIntegration;
}
function stallTrackingIntegration() { // fn#13030, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:152, offset: 0x00dde3da, size: 292 bytes, params: 1, frame: 15
var backgroundEventListener;
const value = undefined;
let r0 = arguments.length > 0 && value !== arguments[0] ? arguments[0] : {};
const minimumStallThresholdMs = r0.minimumStallThresholdMs;
r0 = value === minimumStallThresholdMs ? 50 : minimumStallThresholdMs;
const Map = global.Map;
const map = new Map();
const object2 = {'isTracking': false, 'timeout': null, 'isBackground': false, 'lastIntervalMs': 0,
'totalStallTime': 0, 'stallCount': 0};
object2.backgroundEventListener = backgroundEventListener;
object2.iteration = iteration;
if (AppState == null ? value : AppState.isAvailable) {
AppState.addEventListener('change', object2.backgroundEventListener);
}
return {name: 'StallTracking', setup: function(a0) {
a0.on('spanStart', _onSpanStart);
a0.on('spanEnd', _onSpanEnd);
}, _internalState: object2};
}
function backgroundEventListener(a0) { // fn#13031, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:423, owner: stallTrackingIntegration.backgroundEventListener, offset: 0x00dde4fe, size: 176 bytes, params: 2, frame: 13
var binding;
var value2;
if (a0 === 'active') {
env0_2.isBackground = false;
if (env0_2.timeout != null) {
binding = env0_2;
value2 = environment.__proto__;
binding.lastIntervalMs = 1000 * (require(826) /* metro dependency 826 */).timestampInSeconds();
binding = env0_2;
binding.iteration();
}
} else {
env0_2.isBackground = true;
if (env0_2.timeout !== null) {
global.clearTimeout(env0_2.timeout);
}
}
}
function iteration() { // fn#13032, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:648, owner: stallTrackingIntegration.iteration, offset: 0x00dde5ae, size: 397 bytes, params: 1, frame: 35
var r5;
var r17;
var r2;
var value;
var moduleValue;
var timestampInSeconds;
var value2;
var value3;
var value4;
var lastIntervalMs;
var value5;
var value6;
var binding;
var stallCount;
var totalStallTime;
var entries;
var iterator;
var iterator2;
var value7;
var item;
var item2;
var value8;
var property;
var property2;
var Math;
var max;
var longestStallTime;
var value9;
var value10;
var value11;
var set;
var Object;
var assign;
var Object2;
var assign2;
var object2;
var value12;
var value13;
var error;
var isTracking;
var isBackground;
var setTimeout;
var iteration;
exceptionSkip32: while (true) {
exceptionLanding32: while (true) {
value = environment.__proto__;
moduleValue = require(826) /* metro dependency 826 */;
timestampInSeconds = moduleValue.timestampInSeconds;
value2 = Reflect.apply(timestampInSeconds, moduleValue, []);
value3 = 1000 * value2;
value4 = environment;
lastIntervalMs = env0_2.lastIntervalMs;
value5 = value3 - lastIntervalMs;
if (value5 >= 50 + env0_0) {
value6 = value5 - 50;
binding = env0_2;
stallCount = binding.stallCount;
binding.stallCount = stallCount + 1;
binding = env0_2;
totalStallTime = binding.totalStallTime;
binding.totalStallTime = totalStallTime + value6;
binding = env0_1;
entries = binding.entries;
iterator = Reflect.apply(entries, binding, [])[Symbol.iterator]();
iterator2 = iterator.next;
value7 = 0;
r5 = iterator;
while (true) {
item2 = Reflect.apply(iterator2, r5, []);
item = item2.value;
item2 = item2.done ? undefined : r5;
if (item2 === undefined) {
break;
}
try {
binding = env1_2;
} catch (error) {
break exceptionLanding32;
}
try {
value8 = binding(item, 2);
} catch (error) {
break exceptionLanding32;
}
try {
property = value8[value7];
} catch (error) {
break exceptionLanding32;
}
try {
property2 = value8[1];
} catch (error) {
break exceptionLanding32;
}
try {
Math = global.Math;
} catch (error) {
break exceptionLanding32;
}
try {
max = Math.max;
} catch (error) {
break exceptionLanding32;
}
try {
longestStallTime = property2.longestStallTime;
} catch (error) {
break exceptionLanding32;
}
try {
value9 = longestStallTime === null;
} catch (error) {
break exceptionLanding32;
}
if (value9) {
r17 = value7;
continue;
}
try {
value10 = longestStallTime === undefined;
} catch (error) {
break exceptionLanding32;
}
if (value10) {
r17 = value7;
continue;
}
r17 = longestStallTime;
try {
value11 = Reflect.apply(max, Math, [r17, value6]);
} catch (error) {
break exceptionLanding32;
}
try {
binding = env0_1;
} catch (error) {
break exceptionLanding32;
}
try {
set = binding.set;
} catch (error) {
break exceptionLanding32;
}
try {
Object = global.Object;
} catch (error) {
break exceptionLanding32;
}
try {
assign = Object.assign;
} catch (error) {
break exceptionLanding32;
}
try {
Object2 = global.Object;
} catch (error) {
break exceptionLanding32;
}
try {
assign2 = Object2.assign;
} catch (error) {
break exceptionLanding32;
}
try {
object2 = {};
} catch (error) {
break exceptionLanding32;
}
try {
value12 = Reflect.apply(assign2, Object2, [object2, property2]);
} catch (error) {
break exceptionLanding32;
}
try {
object2 = {};
} catch (error) {
break exceptionLanding32;
}
try {
object2.longestStallTime = value11;
} catch (error) {
break exceptionLanding32;
}
try {
value13 = Reflect.apply(assign, Object, [value12, object2]);
} catch (error) {
break exceptionLanding32;
}
try {
Reflect.apply(set, binding, [property, value13]);
} catch (error) {
break exceptionLanding32;
}
r5 = item2;
}
}
env0_2.lastIntervalMs = value3;
isTracking = env0_2.isTracking;
if (isTracking) {
isBackground = env0_2.isBackground;
value = !isBackground;
r2 = value;
} else {
r2 = isTracking;
}
if (r2) {
binding = env0_2;
setTimeout = global.setTimeout;
iteration = env0_2.iteration;
binding.timeout = setTimeout(iteration, 50);
}
return undefined;
break exceptionSkip32;
}
try {
item2.return();
} catch {
}
throw error;
break exceptionSkip32;
}
}
function _onSpanStart(a0) { // fn#13033, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:1063, owner: stallTrackingIntegration._onSpanStart, offset: 0x00dde73b, size: 163 bytes, params: 2, frame: 17
var binding;
var set;
var object2;
const moduleValue = require(1130) /* metro dependency 1130 */;
if (moduleValue.isRootSpan(a0)) {
binding = env0_1;
if (binding.has(a0)) {
(require(826) /* metro dependency 826 */).debug.error('[StallTracking] Tried to start stall tracking on a transaction already being tracked. Measurements might be lost.');
} else {
_startTracking();
binding = env0_1;
set = binding.set;
object2 = {'longestStallTime': 0, 'atTimestamp': null};
object2.atStart = _getCurrentStats(a0);
Reflect.apply(set, binding, [a0, object2]);
_flushLeakedTransactions();
}
}
}
function _onSpanEnd(a0) { // fn#13034, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:1332, owner: stallTrackingIntegration._onSpanEnd, offset: 0x00dde7de, size: 715 bytes, params: 2, frame: 25
var r1;
var binding;
var value4;
var moduleValue2;
var debug;
var log;
var timestamp;
var moduleValue3;
var latestChildSpanEndTimestamp;
var setSpanMeasurement;
var STALL_COUNT;
var stall_count;
var value8;
var atStart;
var value10;
var unit;
var STALL_TOTAL_TIME;
var stall_total_time;
var value11;
var value13;
var STALL_LONGEST_TIME;
var stall_longest_time;
var value14;
let value = environment.__proto__;
const value2 = undefined;
if ((require(1130) /* metro dependency 1130 */).isRootSpan(a0)) {
binding = env0_1;
value4 = binding.get(a0);
moduleValue2 = require(826) /* metro dependency 826 */;
if (value4) {
timestamp = moduleValue2.spanToJSON(a0).timestamp;
moduleValue3 = require(1164) /* metro dependency 1164 */;
if (moduleValue3.isNearToNow(timestamp)) {
r1 = _getCurrentStats(a0);
} else {
latestChildSpanEndTimestamp = (require(1164) /* metro dependency 1164 */).getLatestChildSpanEndTimestamp(a0);
if (latestChildSpanEndTimestamp !== timestamp) {
(require(826) /* metro dependency 826 */).debug.log('[StallTracking] Stall measurements not added due to a custom `endTimestamp` (root end is not equal to the latest child span end).');
}
if (!value4.atTimestamp) {
(require(826) /* metro dependency 826 */).debug.log('[StallTracking] Stall measurements not added due to `endTimestamp` not being close to now. And no previous stats from child end were found.');
}
r1 = latestChildSpanEndTimestamp === timestamp && value4.atTimestamp ? value4.atTimestamp.stats : value2;
}
env0_1.delete(a0);
_shouldStopTracking();
if (r1) {
value = require(1164) /* metro dependency 1164 */;
setSpanMeasurement = value.setSpanMeasurement;
STALL_COUNT = (require(1167) /* metro dependency 1167 */).STALL_COUNT;
stall_count = r1.stall_count;
value8 = stall_count.value;
atStart = value4.atStart;
stall_count = atStart.stall_count;
value10 = value8 - stall_count.value;
atStart = value4.atStart;
stall_count = atStart.stall_count;
unit = stall_count.unit;
Reflect.apply(setSpanMeasurement, value, [a0, STALL_COUNT, value10, unit]);
value = require(1164) /* metro dependency 1164 */;
setSpanMeasurement = value.setSpanMeasurement;
STALL_TOTAL_TIME = (require(1167) /* metro dependency 1167 */).STALL_TOTAL_TIME;
stall_total_time = r1.stall_total_time;
value11 = stall_total_time.value;
atStart = value4.atStart;
stall_total_time = atStart.stall_total_time;
value13 = value11 - stall_total_time.value;
atStart = value4.atStart;
stall_total_time = atStart.stall_total_time;
unit = stall_total_time.unit;
Reflect.apply(setSpanMeasurement, value, [a0, STALL_TOTAL_TIME, value13, unit]);
value = require(1164) /* metro dependency 1164 */;
setSpanMeasurement = value.setSpanMeasurement;
STALL_LONGEST_TIME = (require(1167) /* metro dependency 1167 */).STALL_LONGEST_TIME;
stall_longest_time = r1.stall_longest_time;
value14 = stall_longest_time.value;
stall_longest_time = r1.stall_longest_time;
unit = stall_longest_time.unit;
Reflect.apply(setSpanMeasurement, value, [a0, STALL_LONGEST_TIME, value14, unit]);
} else if (value2 !== timestamp) {
debug = (require(826) /* metro dependency 826 */).debug;
log = debug.log;
value = require(826) /* metro dependency 826 */;
value = value.timestampInSeconds();
Reflect.apply(log, debug,
['[StallTracking] Stall measurements not added due to `endTimestamp` not being close to now.',
'endTimestamp',
timestamp, 'now', value]);
}
return value2;
}
debug = moduleValue2.debug;
debug.log('[StallTracking] Stall measurements were not added to transaction due to exceeding the max count.');
binding = env0_1;
binding.delete(a0);
_shouldStopTracking();
return value2;
}
return _onChildSpanEnd(a0);
}
function _onChildSpanEnd(a0) { // fn#13035, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:2645, owner: stallTrackingIntegration._onChildSpanEnd, offset: 0x00ddeaa9, size: 83 bytes, params: 2, frame: 16
let value = environment.__proto__;
value = require(826) /* metro dependency 826 */;
value = value.getRootSpan(a0);
const moduleValue = require(826) /* metro dependency 826 */;
const timestamp = moduleValue.spanToJSON(a0).timestamp;
if (timestamp) {
_markSpanFinish(value, timestamp);
}
}
function _markSpanFinish(a0, a1) { // fn#13036, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:2749, owner: stallTrackingIntegration._markSpanFinish, offset: 0x00ddeafc, size: 317 bytes, params: 3, frame: 25
var Math;
var abs;
var value3;
var moduleValue;
var set;
var Object;
var assign;
var value5;
var object;
let binding = env0_1;
const value2 = binding.get(a0);
if (value2) {
Math = global.Math;
abs = Math.abs;
value3 = environment.__proto__;
moduleValue = require(826) /* metro dependency 826 */;
if (Reflect.apply(abs, Math, [moduleValue.timestampInSeconds() - a1]) > 0.02) {
(require(826) /* metro dependency 826 */).debug.log('[StallTracking] Span end not logged due to end timestamp being outside the margin of error from now.');
if (value2.atTimestamp && value2.atTimestamp.timestamp < a1) {
binding = env0_1;
set = binding.set;
Object = global.Object;
Reflect.apply(set, binding, [a0, Object.assign(global.Object.assign({}, value2), {atTimestamp: null})]);
}
} else {
binding = env0_1;
set = binding.set;
Object = global.Object;
assign = Object.assign;
value5 = global.Object.assign({}, value2);
object = {timestamp: a1};
object.stats = _getCurrentStats(a0);
Reflect.apply(set, binding, [a0, Reflect.apply(assign, Object, [value5, {atTimestamp: object}])]);
}
}
}
function _getCurrentStats(a0) { // fn#13037, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:3159, owner: stallTrackingIntegration._getCurrentStats, offset: 0x00ddec39, size: 137 bytes, params: 2, frame: 16
const object2 = {};
object2.stall_count = {value: env0_2.stallCount, unit: 'none'};
object2.stall_total_time = {value: env0_2.totalStallTime, unit: 'millisecond'};
const value = env0_1.get(a0);
const value2 = undefined;
const longestStallTime = value === null || value2 === value ? value2 : value.longestStallTime;
object2.stall_longest_time = {value: longestStallTime === null || value2 === longestStallTime ? 0 : longestStallTime,
unit: 'millisecond'};
return object2;
}
function _startTracking() { // fn#13038, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:3444, owner: stallTrackingIntegration._startTracking, offset: 0x00ddecc2, size: 120 bytes, params: 1, frame: 15
var binding;
var Math;
var floor;
var value2;
if (!env0_2.isTracking) {
env0_2.isTracking = true;
binding = env0_2;
Math = global.Math;
floor = Math.floor;
value2 = environment.__proto__;
binding.lastIntervalMs = Reflect.apply(floor, Math,
[1000 * (require(826) /* metro dependency 826 */).timestampInSeconds()]);
binding = env0_2;
binding.iteration();
}
}
function _shouldStopTracking() { // fn#13039, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:3581, owner: stallTrackingIntegration._shouldStopTracking, offset: 0x00dded3a, size: 95 bytes, params: 1, frame: 13
if (env0_1.size === 0) {
env0_2.isTracking = false;
if (env0_2.timeout !== null) {
global.clearTimeout(env0_2.timeout);
env0_2.timeout = null;
}
_reset();
}
}
function _reset() { // fn#13040, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:3734, owner: stallTrackingIntegration._reset, offset: 0x00dded99, size: 53 bytes, params: 1, frame: 10
env0_2.stallCount = 0;
env0_2.totalStallTime = 0;
env0_2.lastIntervalMs = 0;
env0_1.clear();
}
function _flushLeakedTransactions() { // fn#13041, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1299:3818, owner: stallTrackingIntegration._flushLeakedTransactions, offset: 0x00ddedce, size: 128 bytes, params: 1, frame: 19
var r2;
var r5;
var value;
var size;
var value2;
var value3;
var binding;
var keys;
var iterator;
var iterator2;
var item;
var item2;
var value4;
var value5;
var property;
var error;
exceptionSkip12: while (true) {
exceptionLanding12: while (true) {
value = environment;
size = env0_1.size;
if (size > 10) {
value2 = 0;
size = env0_1.size;
value3 = size - 10;
binding = env0_1;
keys = binding.keys;
iterator = Reflect.apply(keys, binding, [])[Symbol.iterator]();
iterator2 = iterator.next;
r2 = iterator;
r5 = value2;
loopExit2: while (true) {
item2 = Reflect.apply(iterator2, r2, []);
item = item2.value;
item2 = item2.done ? undefined : r2;
if (item2 === undefined) {
break loopExit2;
}
try {
value4 = r5 >= value3;
} catch (error) {
break exceptionLanding12;
}
if (value4) {
item2.return();
break loopExit2;
}
try {
value5 = r5 + 1;
} catch (error) {
break exceptionLanding12;
}
try {
binding = env0_1;
} catch (error) {
break exceptionLanding12;
}
try {
property = binding.delete;
} catch (error) {
break exceptionLanding12;
}
try {
Reflect.apply(property, binding, [item]);
} catch (error) {
break exceptionLanding12;
}
r2 = item2;
r5 = value5;
}
}
return undefined;
break exceptionSkip12;
}
try {
item2.return();
} catch {
}
throw error;
break exceptionSkip12;
}
}