/* Metro module 6391; source: unknown; dependencies: [6365, 6374, 6375] */ import Module06365 from './module-06365.js'; /* Metro dependency 6365 */ import ClassCallCheck from './module-06374-ClassCallCheck.js'; /* Metro dependency 6374 */ import CreateClass from './module-06375-CreateClass.js'; /* Metro dependency 6375 */ function _fun50086(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#50086, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:6, offset: 0x01210b50, size: 109 bytes, params: 8, frame: 18 const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); exports.RenderStackManager = _fun50087(); function _fun50087() { // fn#50087, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:132, offset: 0x01210bbd, size: 291 bytes, params: 1, frame: 15 return CreateClass(RenderStackManager, [{key: 'sync', value: value_50089}, {key: 'hasOptimizedKey', value: function(a0) { return this.stableIdMap.has(a0); }}, {key: 'cleanup', value: value_50092}, {key: 'recycleKey', value: function(a0) { var value; if (!this.disableRecycling) { value = this.keyMap.get(a0); if (value) { value = this.getRecyclePoolForType(value.itemType); value.add(a0); } } }}, {key: 'getRenderStack', value: function() { return this.keyMap; }}, {key: 'syncItem', value: value_50095}, {key: 'clearRecyclePool', value: function() { var error; var property = this.recycleKeyPools; var iterator = property.values()[Symbol.iterator](); var iterator2 = iterator.next; var r2 = iterator; var item2 = Reflect.apply(iterator2, r2, []); var item = item2.value; item2 = item2.done ? undefined : r2; reducibleJoin2: while (true) { if (item2 === undefined) { return undefined; } break reducibleJoin2; } reducibleLoop2: while (true) { try { property = item.clear; } catch (error) { try { item2.return(); } catch { } throw error; } try { Reflect.apply(property, item, []); } catch (error) { try { item2.return(); } catch { } throw error; } r2 = item2; item2 = Reflect.apply(iterator2, r2, []); item = item2.value; item2 = item2.done ? undefined : r2; if (item2 === undefined) { break reducibleLoop2; } continue reducibleLoop2; } }}, {key: 'generateKey', value: function() { var keyCounter = this.keyCounter; var value = typeof keyCounter === 'bigint' ? keyCounter : +keyCounter; this.keyCounter = typeof value === 'bigint' ? value + 1n : +value + 1; return value.toString(); }}, {key: 'deleteKeyFromRecyclePool', value: function(a0, a1) { var value = this.recycleKeyPools.get(a0); if (value != null) { value.delete(a1); } }}, {key: 'getRecyclePoolForType', value: function(a0) { var r0; var value2; var property = this.recycleKeyPools; var value = property.get(a0); if (value) { r0 = value; } else { property = global.Set; value2 = new property(); property = this.recycleKeyPools; property.set(a0, value2); r0 = value2; } return r0; }}, {key: 'getKeyFromRecyclePool', value: function(a0) { var value3; var value = this.getRecyclePoolForType(a0); if (value.size > 0) { value3 = value.values().next().value; value.delete(value3); return value3; } }}]); function RenderStackManager() { // fn#50088, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:153, offset: 0x01210ce0, size: 216 bytes, params: 1, frame: 15 const r1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : global.Number.MAX_SAFE_INTEGER; const value = environment.__proto__; env1_1(this, RenderStackManager); this.disableRecycling = false; this.maxItemsInRecyclePool = r1; let Map = global.Map; this.recycleKeyPools = new Map(); Map = global.Map; this.keyMap = new Map(); Map = global.Map; this.stableIdMap = new Map(); this.keyCounter = 0; const Set = global.Set; this.unProcessedIndices = new Set(); } function value_50089(a0, a1, a2, a3) { // fn#50089, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:494, offset: 0x01210db8, size: 584 bytes, params: 5, frame: 29 var r9; var r12; var r7; var clearRecyclePool; var unProcessedIndices; var clear; var keyMap; var forEach; var iterator; var iterator2; var item; var item2; var hasOptimizedKey; var value; var syncItem; var value2; var error; var iterator3; var item3; var value3; var items2; var values; var iterator4; var item4; var index; var includes; var push; var iterator5; var item5; var value4; var iterator6; var item6; var value5; var cleanup; exceptionSkip76: while (true) { exceptionLanding76: while (true) { exceptionSkip61: while (true) { exceptionLanding61: while (true) { exceptionSkip46: while (true) { exceptionLanding46: while (true) { exceptionSkip29: while (true) { exceptionLanding29: while (true) { exceptionSkip14: while (true) { exceptionLanding14: while (true) { var env0_0 = a0; var env0_1 = a1; var env0_2 = a2; var env0_3 = a3; var env0_4 = this; clearRecyclePool = this.clearRecyclePool; Reflect.apply(clearRecyclePool, this, []); unProcessedIndices = this.unProcessedIndices; clear = unProcessedIndices.clear; Reflect.apply(clear, unProcessedIndices, []); keyMap = this.keyMap; forEach = keyMap.forEach; Reflect.apply(forEach, keyMap, [_fun50090]); iterator = a2[Symbol.iterator](); iterator2 = iterator.next; r9 = iterator; while (true) { item2 = Reflect.apply(iterator2, r9, []); item = item2.value; item2 = item2.done ? undefined : r9; if (item2 === undefined) { break; } try { hasOptimizedKey = this.hasOptimizedKey; } catch (error) { break exceptionLanding14; } try { value = a0(item); } catch (error) { break exceptionLanding14; } try { value = Reflect.apply(hasOptimizedKey, this, [value]); } catch (error) { break exceptionLanding14; } if (!value) { r9 = item2; continue; } try { syncItem = this.syncItem; } catch (error) { break exceptionLanding14; } try { value = a1(item); } catch (error) { break exceptionLanding14; } try { value2 = a0(item); } catch (error) { break exceptionLanding14; } try { Reflect.apply(syncItem, this, [item, value, value2]); } catch (error) { break exceptionLanding14; } r9 = item2; } iterator = a2[Symbol.iterator](); iterator3 = iterator.next; r9 = iterator; while (true) { item3 = Reflect.apply(iterator3, r9, []); item = item3.value; item3 = item3.done ? undefined : r9; if (item3 === undefined) { break; } try { hasOptimizedKey = this.hasOptimizedKey; } catch (error) { break exceptionLanding29; } try { value = a0(item); } catch (error) { break exceptionLanding29; } try { value = Reflect.apply(hasOptimizedKey, this, [value]); } catch (error) { break exceptionLanding29; } if (value) { r9 = item3; continue; } try { syncItem = this.syncItem; } catch (error) { break exceptionLanding29; } try { value = a1(item); } catch (error) { break exceptionLanding29; } try { value3 = a0(item); } catch (error) { break exceptionLanding29; } try { Reflect.apply(syncItem, this, [item, value, value3]); } catch (error) { break exceptionLanding29; } r9 = item3; } items2 = []; keyMap = this.keyMap; values = keyMap.values; iterator = Reflect.apply(values, keyMap, [])[Symbol.iterator](); iterator4 = iterator.next; r9 = iterator; while (true) { item4 = Reflect.apply(iterator4, r9, []); item = item4.value; item4 = item4.done ? undefined : r9; if (item4 === undefined) { break; } try { index = item.index; } catch (error) { break exceptionLanding46; } try { value = index < a3; } catch (error) { break exceptionLanding46; } if (!value) { r12 = value; continue; } try { includes = a2.includes; } catch (error) { break exceptionLanding46; } try { value = Reflect.apply(includes, a2, [index]); } catch (error) { break exceptionLanding46; } value = !value; r12 = value; if (!r12) { r9 = item4; continue; } try { push = items2.push; } catch (error) { break exceptionLanding46; } try { Reflect.apply(push, items2, [index]); } catch (error) { break exceptionLanding46; } r9 = item4; } iterator = items2[Symbol.iterator](); iterator5 = iterator.next; r9 = iterator; while (true) { item5 = Reflect.apply(iterator5, r9, []); item = item5.value; item5 = item5.done ? undefined : r9; if (item5 === undefined) { break; } try { hasOptimizedKey = this.hasOptimizedKey; } catch (error) { break exceptionLanding61; } try { value = a0(item); } catch (error) { break exceptionLanding61; } try { value = Reflect.apply(hasOptimizedKey, this, [value]); } catch (error) { break exceptionLanding61; } if (!value) { r9 = item5; continue; } try { syncItem = this.syncItem; } catch (error) { break exceptionLanding61; } try { value = a1(item); } catch (error) { break exceptionLanding61; } try { value4 = a0(item); } catch (error) { break exceptionLanding61; } try { Reflect.apply(syncItem, this, [item, value, value4]); } catch (error) { break exceptionLanding61; } r9 = item5; } iterator = items2[Symbol.iterator](); iterator6 = iterator.next; r7 = iterator; while (true) { item6 = Reflect.apply(iterator6, r7, []); item = item6.value; item6 = item6.done ? undefined : r7; if (item6 === undefined) { break; } try { hasOptimizedKey = this.hasOptimizedKey; } catch (error) { break exceptionLanding76; } try { value = a0(item); } catch (error) { break exceptionLanding76; } try { value = Reflect.apply(hasOptimizedKey, this, [value]); } catch (error) { break exceptionLanding76; } if (value) { r7 = item6; continue; } try { syncItem = this.syncItem; } catch (error) { break exceptionLanding76; } try { value = a1(item); } catch (error) { break exceptionLanding76; } try { value5 = a0(item); } catch (error) { break exceptionLanding76; } try { Reflect.apply(syncItem, this, [item, value, value5]); } catch (error) { break exceptionLanding76; } r7 = item6; } cleanup = this.cleanup; Reflect.apply(cleanup, this, [a0, a1, a2, a3]); return undefined; break exceptionSkip14; } try { item2.return(); } catch { } throw error; break exceptionSkip14; } break exceptionSkip29; } try { item3.return(); } catch { } throw error; break exceptionSkip29; } break exceptionSkip46; } try { item4.return(); } catch { } throw error; break exceptionSkip46; } break exceptionSkip61; } try { item5.return(); } catch { } throw error; break exceptionSkip61; } break exceptionSkip76; } try { item6.return(); } catch { } throw error; break exceptionSkip76; } function _fun50090({index, stableId, itemType}, a1) { // fn#50090, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:618, offset: 0x01211000, size: 171 bytes, params: 3, frame: 16 if (index >= importAll) { env0_4.recycleKey(a1); } else { if (!env0_4.disableRecycling) { env0_4.unProcessedIndices.add(index); } if (importDefault.includes(index)) { if (!(stableId === env0_0(index) && itemType === require(index))) { env0_4.recycleKey(a1); } } else { env0_4.recycleKey(a1); } } } } function value_50092(a0, a1, a2, a3) { // fn#50092, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:1331, offset: 0x012110c3, size: 639 bytes, params: 5, frame: 40 var r4; var r26; var r23; var r3; var r1; var r2; var r11; var Array; var prototype; var value; var array; var keyMap; var entries; var iterator; var iterator2; var value2; var value3; var item; var item2; var binding; var value4; var property; var property2; var index; var itemType; var stableId; var value5; var value6; var value7; var value8; var unProcessedIndices; var values; var value9; var next; var value10; var value11; var value12; var value13; var value14; var value15; var value16; var syncItem; var value17; var deleteKeyFromRecyclePool; var stableIdMap; var property3; var push; var error; var iterator3; var item3; var size; var length; var maxItemsInRecyclePool; var from; var value18; var reverse; var value19; var value20; var property4; var includes; var value21; var value22; exceptionSkip53: while (true) { exceptionLanding53: while (true) { exceptionSkip47: while (true) { exceptionLanding47: while (true) { Array = global.Array; prototype = Array.prototype; value = Object.create(prototype, {constructor: {value: Array}}); array = new Array(); value = array instanceof Object ? array : value; keyMap = this.keyMap; entries = keyMap.entries; iterator = Reflect.apply(entries, keyMap, [])[Symbol.iterator](); iterator2 = iterator.next; value2 = environment.__proto__; value3 = 0; r4 = iterator; reducibleLoop1: while (true) { item2 = Reflect.apply(iterator2, r4, []); item = item2.value; item2 = item2.done ? undefined : r4; if (item2 === undefined) { break reducibleLoop1; } try { binding = env1_0; } catch (error) { break exceptionLanding47; } try { value4 = binding(item, 2); } catch (error) { break exceptionLanding47; } try { property = value4[value3]; } catch (error) { break exceptionLanding47; } try { property2 = value4[1]; } catch (error) { break exceptionLanding47; } try { index = property2.index; } catch (error) { break exceptionLanding47; } try { itemType = property2.itemType; } catch (error) { break exceptionLanding47; } try { stableId = property2.stableId; } catch (error) { break exceptionLanding47; } try { value5 = index >= a3; } catch (error) { break exceptionLanding47; } value6 = !value5; reducibleJoin16: while (true) { if (value5) { r26 = value6; break reducibleJoin16; } try { value7 = a0(index); } catch (error) { break exceptionLanding47; } value8 = value7 !== stableId; r26 = value8; break reducibleJoin16; } if (!value5) { reducibleJoin18: while (true) { if (r26) { break reducibleJoin18; } r4 = item2; continue reducibleLoop1; } } try { unProcessedIndices = this.unProcessedIndices; } catch (error) { break exceptionLanding47; } try { values = unProcessedIndices.values; } catch (error) { break exceptionLanding47; } try { value9 = Reflect.apply(values, unProcessedIndices, []); } catch (error) { break exceptionLanding47; } try { next = value9.next; } catch (error) { break exceptionLanding47; } try { value10 = Reflect.apply(next, value9, []); } catch (error) { break exceptionLanding47; } try { value11 = value10.value; } catch (error) { break exceptionLanding47; } value12 = true; try { value13 = value11 === undefined; } catch (error) { break exceptionLanding47; } reducibleJoin36: while (true) { if (value13) { r23 = value12; break reducibleJoin36; } try { value14 = a1(value11); } catch (error) { break exceptionLanding47; } try { value15 = a0(value11); } catch (error) { break exceptionLanding47; } try { value16 = itemType !== value14; } catch (error) { break exceptionLanding47; } if (value16) { r23 = value12; break reducibleJoin36; } try { syncItem = this.syncItem; } catch (error) { break exceptionLanding47; } try { Reflect.apply(syncItem, this, [value11, value14, value15]); } catch (error) { break exceptionLanding47; } value17 = false; r23 = value17; break reducibleJoin36; } if (r23) { try { deleteKeyFromRecyclePool = this.deleteKeyFromRecyclePool; } catch (error) { break exceptionLanding47; } try { Reflect.apply(deleteKeyFromRecyclePool, this, [itemType, property]); } catch (error) { break exceptionLanding47; } try { stableIdMap = this.stableIdMap; } catch (error) { break exceptionLanding47; } try { property3 = stableIdMap.delete; } catch (error) { break exceptionLanding47; } try { Reflect.apply(property3, stableIdMap, [stableId]); } catch (error) { break exceptionLanding47; } try { push = value.push; } catch (error) { break exceptionLanding47; } try { Reflect.apply(push, value, [property]); } catch (error) { break exceptionLanding47; } r4 = item2; continue reducibleLoop1; } r4 = item2; continue reducibleLoop1; } iterator = value[Symbol.iterator](); iterator3 = iterator.next; r3 = iterator; reducibleLoop49: while (true) { item3 = Reflect.apply(iterator3, r3, []); item = item3.value; item3 = item3.done ? undefined : r3; if (item3 === undefined) { break reducibleLoop49; } try { keyMap = this.keyMap; } catch (error) { break exceptionLanding53; } try { property = keyMap.delete; } catch (error) { break exceptionLanding53; } try { Reflect.apply(property, keyMap, [item]); } catch (error) { break exceptionLanding53; } r3 = item3; continue reducibleLoop49; } keyMap = this.keyMap; size = keyMap.size; length = a2.length; value = size - length; maxItemsInRecyclePool = this.maxItemsInRecyclePool; reducibleJoin61: while (true) { if (!(value > maxItemsInRecyclePool)) { break reducibleJoin61; } maxItemsInRecyclePool = this.maxItemsInRecyclePool; value -= maxItemsInRecyclePool; Array = global.Array; from = Array.from; keyMap = this.keyMap; entries = keyMap.entries; value18 = Reflect.apply(from, Array, [Reflect.apply(entries, keyMap, [])]); reverse = value18.reverse; value19 = Reflect.apply(reverse, value18, []); length = value19.length; if (!(value3 < length)) { break reducibleJoin61; } if (!(value3 < value)) { break reducibleJoin61; } r1 = value3; r2 = value3; reducibleLoop57: while (true) { binding = env1_0; value20 = binding(value19[r1], 2); property = value20[value3]; property4 = value20[1]; index = property4.index; itemType = property4.itemType; stableId = property4.stableId; includes = a2.includes; reducibleJoin59: while (true) { if (Reflect.apply(includes, a2, [index])) { r11 = r2; break reducibleJoin59; } deleteKeyFromRecyclePool = this.deleteKeyFromRecyclePool; Reflect.apply(deleteKeyFromRecyclePool, this, [itemType, property]); stableIdMap = this.stableIdMap; stableIdMap.delete(stableId); keyMap = this.keyMap; keyMap.delete(property); value21 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; r11 = value21; break reducibleJoin59; } value22 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1; length = value19.length; if (value22 < length) { if (r11 < value) { r1 = value22; r2 = r11; continue reducibleLoop57; } break reducibleJoin61; } break reducibleJoin61; } } return undefined; break exceptionSkip47; } try { item2.return(); } catch { } throw error; break exceptionSkip47; } break exceptionSkip53; } try { item3.return(); } catch { } throw error; break exceptionSkip53; } } } } function value_50095(a0, a1, a2) { // fn#50095, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6569:2355, offset: 0x0121138e, size: 218 bytes, params: 4, frame: 19 let r0 = this.stableIdMap.get(a2) || this.getKeyFromRecyclePool(a1); r0 = !r0 ? this.generateKey() : r0; this.unProcessedIndices.delete(a0); value = this.keyMap.get(r0); if (value) { this.deleteKeyFromRecyclePool(a1, r0); this.deleteKeyFromRecyclePool(value.itemType, r0); this.stableIdMap.delete(value.stableId); value.index = a0; value.itemType = a1; value.stableId = a2; } else { this.keyMap.set(r0, {itemType: a1, index: a0, stableId: a2}); } this.stableIdMap.set(a2, r0); return r0; } global.__d(_fun50086, 6391, [6365, 6374, 6375]) /* metro module 6391, dependencies: [6365, 6374, 6375] */;