text: /* */ 
  "format cjs";
    var CheckedObserver = (function (__super__) {
      inherits(CheckedObserver, __super__);
  
      function CheckedObserver(observer) {
        __super__.call(this);
        this._observer = observer;
        this._state = 0; // 0 - idle, 1 - busy, 2 - done
      }
  
      var CheckedObserverPrototype = CheckedObserver.prototype;
  
      CheckedObserverPrototype.onNext = function (value) {
        this.checkAccess();
        var res = tryCatch(this._observer.onNext).call(this._observer, value);
        this._state = 0;
        res === errorObj && thrower(res.e);
      };
  
      CheckedObserverPrototype.onError = function (err) {
        this.checkAccess();
        var res = tryCatch(this._observer.onError).call(this._observer, err);
        this._state = 2;
        res === errorObj && thrower(res.e);
      };
  
      CheckedObserverPrototype.onCompleted = function () {
        this.checkAccess();
        var res = tryCatch(this._observer.onCompleted).call(this._observer);
        this._state = 2;
        res === errorObj && thrower(res.e);
      };
  
      CheckedObserverPrototype.checkAccess = function () {
        if (this._state === 1) { throw new Error('Re-entrancy detected'); }
        if (this._state === 2) { throw new Error('Observer completed'); }
        if (this._state === 0) { this._state = 1; }
      };
  
      return CheckedObserver;
    }(Observer));
  