(function (_, kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core, kotlin_kotlin, kotlin_io_ktor_ktor_utils) { 'use strict'; //region block: imports var LinkedListNode = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.d2; var protoOf = kotlin_kotlin.$_$.bg; var DisposableHandle = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.q2; var classMeta = kotlin_kotlin.$_$.me; var setMetadataFor = kotlin_kotlin.$_$.cg; var LinkedListHead = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.c2; var CopyOnWriteHashMap = kotlin_io_ktor_ktor_utils.$_$.d; var equals = kotlin_kotlin.$_$.qe; var THROW_CCE = kotlin_kotlin.$_$.nm; var addSuppressed = kotlin_kotlin.$_$.bn; var Unit_getInstance = kotlin_kotlin.$_$.i6; var VOID = kotlin_kotlin.$_$.g; //endregion //region block: pre-declaration setMetadataFor(HandlerRegistration, 'HandlerRegistration', classMeta, LinkedListNode, [LinkedListNode, DisposableHandle]); setMetadataFor(Events, 'Events', classMeta, VOID, VOID, Events); setMetadataFor(EventDefinition, 'EventDefinition', classMeta, VOID, VOID, EventDefinition); //endregion function _get_handlers__pkfn2a($this) { return $this.handlers_1; } function HandlerRegistration(handler) { LinkedListNode.call(this); this.handler_1 = handler; } protoOf(HandlerRegistration).get_handler_cq14kh_k$ = function () { return this.handler_1; }; protoOf(HandlerRegistration).dispose_3nnxhr_k$ = function () { this.remove_fgfybg_k$(); }; function Events$subscribe$lambda(it) { return new LinkedListHead(); } function Events() { this.handlers_1 = new CopyOnWriteHashMap(); } protoOf(Events).subscribe_x6ph2e_k$ = function (definition, handler) { var registration = new HandlerRegistration(handler); this.handlers_1.computeIfAbsent_gq11cy_k$(definition, Events$subscribe$lambda).addLast_dyfyav_k$(registration); return registration; }; protoOf(Events).unsubscribe_pdx53x_k$ = function (definition, handler) { var tmp0_safe_receiver = this.handlers_1.get_h31hzz_k$(definition); if (tmp0_safe_receiver == null) null; else { // Inline function 'kotlinx.coroutines.internal.LinkedListHead.forEach' call var cur = tmp0_safe_receiver.get__next_inmai1_k$(); while (!equals(cur, tmp0_safe_receiver)) { if (cur instanceof HandlerRegistration) { // Inline function 'io.ktor.events.Events.unsubscribe.' call var it = cur; if (equals(it.handler_1, handler)) { it.remove_fgfybg_k$(); } } cur = cur.get__next_inmai1_k$(); } } }; protoOf(Events).raise_3e7w7u_k$ = function (definition, value) { var exception = null; var tmp0_safe_receiver = this.handlers_1.get_h31hzz_k$(definition); if (tmp0_safe_receiver == null) null; else { // Inline function 'kotlinx.coroutines.internal.LinkedListHead.forEach' call var cur = tmp0_safe_receiver.get__next_inmai1_k$(); while (!equals(cur, tmp0_safe_receiver)) { if (cur instanceof HandlerRegistration) { // Inline function 'io.ktor.events.Events.raise.' call var registration = cur; try { var tmp = registration.handler_1; (typeof tmp === 'function' ? tmp : THROW_CCE())(value); } catch ($p) { if ($p instanceof Error) { var e = $p; var tmp0_safe_receiver_0 = exception; var tmp_0; if (tmp0_safe_receiver_0 == null) { tmp_0 = null; } else { addSuppressed(tmp0_safe_receiver_0, e); tmp_0 = Unit_getInstance(); } if (tmp_0 == null) { // Inline function 'kotlin.run' call // Inline function 'kotlin.contracts.contract' call exception = e; } } else { throw $p; } } } cur = cur.get__next_inmai1_k$(); } } var tmp1_safe_receiver = exception; if (tmp1_safe_receiver == null) null; else { // Inline function 'kotlin.let' call // Inline function 'kotlin.contracts.contract' call throw tmp1_safe_receiver; } }; function EventDefinition() { } //region block: exports _.$_$ = _.$_$ || {}; _.$_$.a = EventDefinition; _.$_$.b = Events; //endregion return _; }(module.exports, require('./kotlinx-coroutines-core.js'), require('./kotlin-kotlin-stdlib.js'), require('./ktor-ktor-utils.js'))); //# sourceMappingURL=ktor-ktor-events.js.map