| /** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ | 
| import * as tslib_1 from "tslib"; | 
| import { isFunction } from './util/isFunction'; | 
| import { empty as emptyObserver } from './Observer'; | 
| import { Subscription } from './Subscription'; | 
| import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; | 
| import { config } from './config'; | 
| import { hostReportError } from './util/hostReportError'; | 
| var Subscriber = /*@__PURE__*/ (function (_super) { | 
|     tslib_1.__extends(Subscriber, _super); | 
|     function Subscriber(destinationOrNext, error, complete) { | 
|         var _this = _super.call(this) || this; | 
|         _this.syncErrorValue = null; | 
|         _this.syncErrorThrown = false; | 
|         _this.syncErrorThrowable = false; | 
|         _this.isStopped = false; | 
|         switch (arguments.length) { | 
|             case 0: | 
|                 _this.destination = emptyObserver; | 
|                 break; | 
|             case 1: | 
|                 if (!destinationOrNext) { | 
|                     _this.destination = emptyObserver; | 
|                     break; | 
|                 } | 
|                 if (typeof destinationOrNext === 'object') { | 
|                     if (destinationOrNext instanceof Subscriber) { | 
|                         _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; | 
|                         _this.destination = destinationOrNext; | 
|                         destinationOrNext.add(_this); | 
|                     } | 
|                     else { | 
|                         _this.syncErrorThrowable = true; | 
|                         _this.destination = new SafeSubscriber(_this, destinationOrNext); | 
|                     } | 
|                     break; | 
|                 } | 
|             default: | 
|                 _this.syncErrorThrowable = true; | 
|                 _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); | 
|                 break; | 
|         } | 
|         return _this; | 
|     } | 
|     Subscriber.prototype[rxSubscriberSymbol] = function () { return this; }; | 
|     Subscriber.create = function (next, error, complete) { | 
|         var subscriber = new Subscriber(next, error, complete); | 
|         subscriber.syncErrorThrowable = false; | 
|         return subscriber; | 
|     }; | 
|     Subscriber.prototype.next = function (value) { | 
|         if (!this.isStopped) { | 
|             this._next(value); | 
|         } | 
|     }; | 
|     Subscriber.prototype.error = function (err) { | 
|         if (!this.isStopped) { | 
|             this.isStopped = true; | 
|             this._error(err); | 
|         } | 
|     }; | 
|     Subscriber.prototype.complete = function () { | 
|         if (!this.isStopped) { | 
|             this.isStopped = true; | 
|             this._complete(); | 
|         } | 
|     }; | 
|     Subscriber.prototype.unsubscribe = function () { | 
|         if (this.closed) { | 
|             return; | 
|         } | 
|         this.isStopped = true; | 
|         _super.prototype.unsubscribe.call(this); | 
|     }; | 
|     Subscriber.prototype._next = function (value) { | 
|         this.destination.next(value); | 
|     }; | 
|     Subscriber.prototype._error = function (err) { | 
|         this.destination.error(err); | 
|         this.unsubscribe(); | 
|     }; | 
|     Subscriber.prototype._complete = function () { | 
|         this.destination.complete(); | 
|         this.unsubscribe(); | 
|     }; | 
|     Subscriber.prototype._unsubscribeAndRecycle = function () { | 
|         var _parentOrParents = this._parentOrParents; | 
|         this._parentOrParents = null; | 
|         this.unsubscribe(); | 
|         this.closed = false; | 
|         this.isStopped = false; | 
|         this._parentOrParents = _parentOrParents; | 
|         return this; | 
|     }; | 
|     return Subscriber; | 
| }(Subscription)); | 
| export { Subscriber }; | 
| var SafeSubscriber = /*@__PURE__*/ (function (_super) { | 
|     tslib_1.__extends(SafeSubscriber, _super); | 
|     function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { | 
|         var _this = _super.call(this) || this; | 
|         _this._parentSubscriber = _parentSubscriber; | 
|         var next; | 
|         var context = _this; | 
|         if (isFunction(observerOrNext)) { | 
|             next = observerOrNext; | 
|         } | 
|         else if (observerOrNext) { | 
|             next = observerOrNext.next; | 
|             error = observerOrNext.error; | 
|             complete = observerOrNext.complete; | 
|             if (observerOrNext !== emptyObserver) { | 
|                 context = Object.create(observerOrNext); | 
|                 if (isFunction(context.unsubscribe)) { | 
|                     _this.add(context.unsubscribe.bind(context)); | 
|                 } | 
|                 context.unsubscribe = _this.unsubscribe.bind(_this); | 
|             } | 
|         } | 
|         _this._context = context; | 
|         _this._next = next; | 
|         _this._error = error; | 
|         _this._complete = complete; | 
|         return _this; | 
|     } | 
|     SafeSubscriber.prototype.next = function (value) { | 
|         if (!this.isStopped && this._next) { | 
|             var _parentSubscriber = this._parentSubscriber; | 
|             if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { | 
|                 this.__tryOrUnsub(this._next, value); | 
|             } | 
|             else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { | 
|                 this.unsubscribe(); | 
|             } | 
|         } | 
|     }; | 
|     SafeSubscriber.prototype.error = function (err) { | 
|         if (!this.isStopped) { | 
|             var _parentSubscriber = this._parentSubscriber; | 
|             var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling; | 
|             if (this._error) { | 
|                 if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { | 
|                     this.__tryOrUnsub(this._error, err); | 
|                     this.unsubscribe(); | 
|                 } | 
|                 else { | 
|                     this.__tryOrSetError(_parentSubscriber, this._error, err); | 
|                     this.unsubscribe(); | 
|                 } | 
|             } | 
|             else if (!_parentSubscriber.syncErrorThrowable) { | 
|                 this.unsubscribe(); | 
|                 if (useDeprecatedSynchronousErrorHandling) { | 
|                     throw err; | 
|                 } | 
|                 hostReportError(err); | 
|             } | 
|             else { | 
|                 if (useDeprecatedSynchronousErrorHandling) { | 
|                     _parentSubscriber.syncErrorValue = err; | 
|                     _parentSubscriber.syncErrorThrown = true; | 
|                 } | 
|                 else { | 
|                     hostReportError(err); | 
|                 } | 
|                 this.unsubscribe(); | 
|             } | 
|         } | 
|     }; | 
|     SafeSubscriber.prototype.complete = function () { | 
|         var _this = this; | 
|         if (!this.isStopped) { | 
|             var _parentSubscriber = this._parentSubscriber; | 
|             if (this._complete) { | 
|                 var wrappedComplete = function () { return _this._complete.call(_this._context); }; | 
|                 if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { | 
|                     this.__tryOrUnsub(wrappedComplete); | 
|                     this.unsubscribe(); | 
|                 } | 
|                 else { | 
|                     this.__tryOrSetError(_parentSubscriber, wrappedComplete); | 
|                     this.unsubscribe(); | 
|                 } | 
|             } | 
|             else { | 
|                 this.unsubscribe(); | 
|             } | 
|         } | 
|     }; | 
|     SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { | 
|         try { | 
|             fn.call(this._context, value); | 
|         } | 
|         catch (err) { | 
|             this.unsubscribe(); | 
|             if (config.useDeprecatedSynchronousErrorHandling) { | 
|                 throw err; | 
|             } | 
|             else { | 
|                 hostReportError(err); | 
|             } | 
|         } | 
|     }; | 
|     SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { | 
|         if (!config.useDeprecatedSynchronousErrorHandling) { | 
|             throw new Error('bad call'); | 
|         } | 
|         try { | 
|             fn.call(this._context, value); | 
|         } | 
|         catch (err) { | 
|             if (config.useDeprecatedSynchronousErrorHandling) { | 
|                 parent.syncErrorValue = err; | 
|                 parent.syncErrorThrown = true; | 
|                 return true; | 
|             } | 
|             else { | 
|                 hostReportError(err); | 
|                 return true; | 
|             } | 
|         } | 
|         return false; | 
|     }; | 
|     SafeSubscriber.prototype._unsubscribe = function () { | 
|         var _parentSubscriber = this._parentSubscriber; | 
|         this._context = null; | 
|         this._parentSubscriber = null; | 
|         _parentSubscriber.unsubscribe(); | 
|     }; | 
|     return SafeSubscriber; | 
| }(Subscriber)); | 
| export { SafeSubscriber }; | 
| //# sourceMappingURL=Subscriber.js.map |