| "use strict"; | 
| var __extends = (this && this.__extends) || (function () { | 
|     var extendStatics = function (d, b) { | 
|         extendStatics = Object.setPrototypeOf || | 
|             ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | 
|             function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | 
|         return extendStatics(d, b); | 
|     } | 
|     return function (d, b) { | 
|         extendStatics(d, b); | 
|         function __() { this.constructor = d; } | 
|         d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | 
|     }; | 
| })(); | 
| Object.defineProperty(exports, "__esModule", { value: true }); | 
| var OuterSubscriber_1 = require("../OuterSubscriber"); | 
| var InnerSubscriber_1 = require("../InnerSubscriber"); | 
| var subscribeToResult_1 = require("../util/subscribeToResult"); | 
| function catchError(selector) { | 
|     return function catchErrorOperatorFunction(source) { | 
|         var operator = new CatchOperator(selector); | 
|         var caught = source.lift(operator); | 
|         return (operator.caught = caught); | 
|     }; | 
| } | 
| exports.catchError = catchError; | 
| var CatchOperator = (function () { | 
|     function CatchOperator(selector) { | 
|         this.selector = selector; | 
|     } | 
|     CatchOperator.prototype.call = function (subscriber, source) { | 
|         return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); | 
|     }; | 
|     return CatchOperator; | 
| }()); | 
| var CatchSubscriber = (function (_super) { | 
|     __extends(CatchSubscriber, _super); | 
|     function CatchSubscriber(destination, selector, caught) { | 
|         var _this = _super.call(this, destination) || this; | 
|         _this.selector = selector; | 
|         _this.caught = caught; | 
|         return _this; | 
|     } | 
|     CatchSubscriber.prototype.error = function (err) { | 
|         if (!this.isStopped) { | 
|             var result = void 0; | 
|             try { | 
|                 result = this.selector(err, this.caught); | 
|             } | 
|             catch (err2) { | 
|                 _super.prototype.error.call(this, err2); | 
|                 return; | 
|             } | 
|             this._unsubscribeAndRecycle(); | 
|             var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); | 
|             this.add(innerSubscriber); | 
|             subscribeToResult_1.subscribeToResult(this, result, undefined, undefined, innerSubscriber); | 
|         } | 
|     }; | 
|     return CatchSubscriber; | 
| }(OuterSubscriber_1.OuterSubscriber)); | 
| //# sourceMappingURL=catchError.js.map |