// Module ID: 627 // Function ID: 7178 // Name: _createForOfIteratorHelperLoose // Dependencies: [] // Module 627 (_createForOfIteratorHelperLoose) function _createForOfIteratorHelperLoose(@@iterator) { let arg1 = Symbol_iterator; @@iterator = "undefined" !== typeof Symbol; if (Symbol_iterator) { const _Symbol = Symbol; @@iterator = Symbol_iterator[Symbol.iterator]; } if (!Symbol_iterator) { @@iterator = Symbol_iterator[Symbol.iterator]; } if (Symbol_iterator) { const iter = Symbol_iterator.call(Symbol_iterator); const next = iter.next; return next.bind(iter); } else { const _Array = Array; let tmp = Symbol_iterator; if (!Array.isArray(Symbol_iterator)) { let tmp2; if (Symbol_iterator) { if ("string" === typeof Symbol_iterator) { tmp2 = _arrayLikeToArray(Symbol_iterator, undefined); } else { const toString = {}.toString; const substr = toString.call(Symbol_iterator).slice(8, -1); let name = substr; if (tmp3) { name = Symbol_iterator.constructor.name; } if ("Map" !== name) { if ("Set" !== name) { if ("Arguments" === name) { let arr = _arrayLikeToArray(Symbol_iterator, undefined); } else { const obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/; } } tmp2 = arr; } const _Array2 = Array; arr = Array.from(Symbol_iterator); const callResult = toString.call(Symbol_iterator); const tmp3 = "Object" === substr && Symbol_iterator.constructor; } } tmp = tmp2; if (!tmp2) { const _TypeError = TypeError; const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); throw typeError; } } if (tmp) { arg1 = tmp; } let closure_1 = 0; return () => { if (closure_1 >= tmp.length) { let obj = { done: true }; } else { obj = { done: false }; closure_1 = tmp3 + 1; obj.value = tmp[+closure_1]; } return obj; }; } } function _arrayLikeToArray(arg0, arg1) { let length; if (tmp) { length = arg0.length; } const ArrayResult = Array(length); for (let num = 0; num < length; num = num + 1) { ArrayResult[num] = arg0[num]; } return ArrayResult; } function setDisplayName(arg0, displayName) { arg0.displayName = displayName; } let closure_4 = importDefault(dependencyMap[0]); let closure_5 = importDefault(dependencyMap[1]); const set = new Set([true, true, true, true, true, true, true, true, true, true, true, true, true, true]); const logger = new arg1(dependencyMap[2]).Logger("Flux"); let closure_8 = () => { class ActionHandlersGraph { constructor() { tmp = closure_4(this, ActionHandlersGraph); this._orderedActionHandlers = {}; this._orderedCallbackTokens = null; this._lastID = 1; depGraph = new ActionHandlersGraph(closure_3[9]).DepGraph(); this._dependencyGraph = depGraph; return; } } const arg1 = ActionHandlersGraph; let obj = { key: "getOrderedActionHandlers", value: function getOrderedActionHandlers(type) { const self = this; let result = this._orderedActionHandlers[type.type]; if (null == result) { result = self._computeOrderedActionHandlers(type.type); } return result; } }; const items = [obj, , , , , , , , , ]; obj = { key: "register", value: function register(name, obj, storeDidChange, band, token) { const self = this; if (token === undefined) { token = self.createToken(); } obj = undefined; let closure_3; let isIntegerResult = band >= 0; if (isIntegerResult) { const _Number = Number; isIntegerResult = Number.isInteger(band); } obj(closure_3[5])(isIntegerResult, "band must be a non-negative integer."); obj = {}; for (const key10023 in arg1) { let tmp10 = key10023; closure_3 = key10023; let tmp6Result = tmp6(); } const _dependencyGraph = self._dependencyGraph; obj = { name, band, actionHandler: obj, storeDidChange }; _dependencyGraph.addNode(token, obj); self._addToBand(token, band); self._invalidateCaches(); return token; } }; items[1] = obj; obj = { key: "createToken", value: function createToken() { const tmp = +this._lastID; this._lastID = tmp + 1; return "ID_" + tmp; } }; items[2] = obj; items[3] = { key: "addDependencies", value: function addDependencies(arg0, arg1) { let done; const self = this; const result = this._validateDependencies(arg0, arg1); const tmp2 = callback2(arg1); let iter = tmp2(); if (!iter.done) { do { let _dependencyGraph = self._dependencyGraph; let addDependencyResult = _dependencyGraph.addDependency(arg0, iter.value); let iter2 = tmp2(); iter = iter2; done = iter2.done; } while (!done); } self._invalidateCaches(); } }; items[4] = { key: "_validateDependencies", value: function _validateDependencies(arg0, arg1) { } }; items[5] = { key: "_invalidateCaches", value: function _invalidateCaches() { this._orderedCallbackTokens = null; this._orderedActionHandlers = {}; } }; items[6] = { key: "_bandToken", value: function _bandToken(band) { const self = this; const combined = "band." + band; const _dependencyGraph = this._dependencyGraph; if (!_dependencyGraph.hasNode(combined)) { const _dependencyGraph2 = self._dependencyGraph; const obj = { name: combined, band, actionHandler: {}, storeDidChange(type) { } }; _dependencyGraph2.addNode(combined, obj); if (band > 0) { const _dependencyGraph3 = self._dependencyGraph; _dependencyGraph3.addDependency(combined, self._bandToken(band - 1)); } } return combined; } }; items[7] = { key: "_addToBand", value: function _addToBand(token, band) { const self = this; const _dependencyGraph = this._dependencyGraph; _dependencyGraph.addDependency(this._bandToken(band), token); if (band > 0) { const _dependencyGraph2 = self._dependencyGraph; _dependencyGraph2.addDependency(token, self._bandToken(band - 1)); } } }; items[8] = { key: "_computeOrderedActionHandlers", value: function _computeOrderedActionHandlers(type) { const self = this; let prop = this._orderedCallbackTokens; if (null == prop) { prop = self._computeOrderedCallbackTokens(); } const items = []; for (let num = 0; num < length; num = num + 1) { let _dependencyGraph = self._dependencyGraph; let nodeData = _dependencyGraph.getNodeData(prop[num]); let tmp4 = nodeData.actionHandler[type]; if (null != tmp4) { let obj = { name: tmp2, actionHandler: tmp4, storeDidChange: tmp3 }; let arr = items.push(obj); } } self._orderedActionHandlers[type] = items; return items; } }; items[9] = { key: "_computeOrderedCallbackTokens", value: function _computeOrderedCallbackTokens() { const _dependencyGraph = this._dependencyGraph; const overallOrderResult = _dependencyGraph.overallOrder(); this._orderedCallbackTokens = overallOrderResult; return overallOrderResult; } }; return callback(ActionHandlersGraph, items); }(); const tmp4 = () => { class Dispatcher { constructor() { num = arg0; actionLogger = arg1; self = this; if (arg0 === undefined) { num = 0; } tmp2 = closure_4(self, Dispatcher); self._interceptors = []; self._subscriptions = {}; self._waitQueue = []; self._processingWaitQueue = false; self._currentDispatchActionType = null; tmp3 = new closure_8(); self._actionHandlers = tmp3; self._sentryUtils = undefined; self.functionCache = {}; self._defaultBand = num; self._sentryUtils = arg2; if (null == actionLogger) { tmp4 = Dispatcher; tmp5 = closure_3; num2 = 3; ActionLogger = Dispatcher(closure_3[3]).ActionLogger; prototype = ActionLogger.prototype; tmp6 = new.target; tmp7 = new.target; actionLogger = new ActionLogger(); } self.actionLogger = actionLogger; actionLogger = self.actionLogger; onResult = actionLogger.on("trace", (arg0, arg1, arg2) => { let isTracing = callback(closure_3[4]).isTracing; if (isTracing) { isTracing = arg2 >= 10; } if (isTracing) { callback(closure_3[4]).mark("\u{1F9A5}", arg1, arg2); const obj = callback(closure_3[4]); } }); return; } } const arg1 = Dispatcher; let obj = { key: "isDispatching", value() { return null != this._currentDispatchActionType; } }; const items = [obj, , , , , , , , , , , , , ]; obj = { key: "dispatch", value(arg0) { const Dispatcher = this; return new Promise((arg0, arg1) => { const self = arg0; arg0 = arg1; const _waitQueue = self._waitQueue; _waitQueue.push(() => { if (null == arg0.functionCache[closure_1.type]) { arg0.functionCache[arg1.type] = (arg0) => closure_0._dispatchWithDevtools(arg0); callback(arg0.functionCache[closure_1.type], `dispatch_${closure_1.type}`); } const functionCache = arg0.functionCache; functionCache[closure_1.type](arg1); arg0(); }); self.flushWaitQueue(); }); } }; items[1] = obj; obj = { key: "dispatchForStoreTest", value(type) { let iter2; callback(closure_3[5])(false, "dispatchForTest cannot be called in: production"); const tmp2 = callback4(this._actionHandlers.getOrderedActionHandlers(type)); let iter = tmp2(); if (!iter.done) { do { let value = iter.value; let tmp3 = value.name === arg1; if (tmp3) { tmp3 = false !== value.actionHandler(type); } if (tmp3) { let storeDidChangeResult = value.storeDidChange(type); } iter2 = tmp2(); iter = iter2; } while (!iter2.done); } } }; items[2] = obj; items[3] = { key: "flushWaitQueue", value() { const self = this; if (!this._processingWaitQueue) { self._processingWaitQueue = true; callback(closure_3[6]).isDispatching = true; let num3 = 0; if (self._waitQueue.length > 0) { const sum = num3 + 1; num3 = sum; while (sum <= 100) { if (self._waitQueue.length > 0) { do { let _waitQueue = self._waitQueue; let tmp5 = _waitQueue.shift()(); let length = self._waitQueue.length; } while (length > 0); } let tmp6 = callback; let tmp7 = closure_3; let obj = callback(closure_3[6]); let emitResult = obj.emit(); } const serializeResult = callback2(closure_3[7]).serialize(); closure_7.error("LastFewActions", serializeResult); const _sentryUtils = self._sentryUtils; if (null != _sentryUtils) { obj = { message: "Dispatcher: Dispatch loop detected" }; obj = { lastFewActions: serializeResult }; obj.data = obj; _sentryUtils.addBreadcrumb(obj); } const _Error = Error; throw Error("Dispatch loop detected, aborting"); } self._processingWaitQueue = false; callback(closure_3[6]).isDispatching = false; } } }; items[4] = { key: "_dispatchWithDevtools", value(arg0) { this._dispatchWithLogging(arg0); } }; items[5] = { key: "_dispatchWithLogging", value(type) { const Dispatcher = this; type(closure_3[5])(null == this._currentDispatchActionType, "Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch. Action: " + type.type + " Already dispatching: " + this._currentDispatchActionType); type(closure_3[5])(type.type, "Dispatch.dispatch(...) called without an action type"); if (set.has(type.type)) { const _HermesInternal = HermesInternal; closure_7.log("Dispatching " + tmp.type); } const tmp2 = type(closure_3[5]); const tmp3 = null == this._currentDispatchActionType; Dispatcher(closure_3[8]).mark(type.type); const obj = Dispatcher(closure_3[8]); callback2(closure_3[7]).add(type.type); const actionLogger = this.actionLogger; const logResult1 = actionLogger.log(type, (arg0) => { self._currentDispatchActionType = arg0.type; self._dispatch(arg0, arg0); self._currentDispatchActionType = null; }); if (logResult1.totalTime > 100) { const _HermesInternal2 = HermesInternal; closure_7.verbose("Slow dispatch on " + tmp.type + ": " + logResult1.totalTime + "ms"); } const obj2 = callback2(closure_3[7]); Dispatcher(closure_3[8]).measure("DISPATCH[" + type.type + "]", type.type); } }; items[6] = { key: "_dispatch", value(type) { const self = this; const Dispatcher = type; const tmp = callback4(this._interceptors); let iter = tmp(); if (!iter.done) { while (!iter.value(type)) { let iter2 = tmp(); iter = iter2; } return false; } const orderedActionHandlers = self._actionHandlers.getOrderedActionHandlers(type); let num = 0; let closure_3 = 0; if (0 < orderedActionHandlers.length) { do { let tmp2 = function _loop() { const arg0 = obj.actionHandler; if (false !== arg1(orderedActionHandlers[closure_3].name, () => actionHandler(actionHandler))) { obj.storeDidChange(arg0); } }(); num = num + 1; closure_3 = num; } while (num < length); } const tmp3 = self._subscriptions[type.type]; if (null != tmp3) { arg1("__subscriptions", () => { const item = tmp3.forEach((arg0) => arg0(closure_0)); }); } } }; items[7] = { key: "addInterceptor", value: function addInterceptor(handleAction) { const _interceptors = this._interceptors; _interceptors.push(handleAction); } }; items[8] = { key: "wait", value: function wait(arg0) { const _waitQueue = this._waitQueue; _waitQueue.push(arg0); this.flushWaitQueue(); } }; items[9] = { key: "subscribe", value: function subscribe(arg0, arg1) { let obj = this._subscriptions[arg0]; if (null == obj) { const _Set = Set; const set = new Set(); this._subscriptions[arg0] = set; obj = set; } obj.add(arg1); } }; items[10] = { key: "unsubscribe", value: function unsubscribe(arg0, arg1) { const obj = this._subscriptions[arg0]; if (null != obj) { obj.delete(arg1); if (0 === obj.size) { const _subscriptions = tmp._subscriptions; delete r0[r1]; } } } }; items[11] = { key: "register", value: function register(arg0, arg1, arg2, arg3, arg4) { let _defaultBand = arg3; if (null == arg3) { _defaultBand = this._defaultBand; } return this._actionHandlers.register(arg0, arg1, arg2, _defaultBand, arg4); } }; items[12] = { key: "createToken", value: function createToken() { return this._actionHandlers.createToken(); } }; items[13] = { key: "addDependencies", value: function addDependencies(arg0, arg1) { this._actionHandlers.addDependencies(arg0, arg1); } }; return callback(Dispatcher, items); }(); const result = arg1(dependencyMap[10]).fileFinishedImporting("../discord_common/js/packages/flux/Dispatcher.tsx"); export const Dispatcher = tmp4;