diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js | 63 |
1 files changed, 37 insertions, 26 deletions
diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js index 9ae814fe19..bc1832c89c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js @@ -1,9 +1,7 @@ -/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */ +/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */ import { isArray } from './util/isArray'; import { isObject } from './util/isObject'; import { isFunction } from './util/isFunction'; -import { tryCatch } from './util/tryCatch'; -import { errorObject } from './util/errorObject'; import { UnsubscriptionError } from './util/UnsubscriptionError'; var Subscription = /*@__PURE__*/ (function () { function Subscription(unsubscribe) { @@ -33,11 +31,12 @@ var Subscription = /*@__PURE__*/ (function () { _parent = ++index < len && _parents[index] || null; } if (isFunction(_unsubscribe)) { - var trial = tryCatch(_unsubscribe).call(this); - if (trial === errorObject) { + try { + _unsubscribe.call(this); + } + catch (e) { hasErrors = true; - errors = errors || (errorObject.e instanceof UnsubscriptionError ? - flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]); + errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; } } if (isArray(_subscriptions)) { @@ -46,16 +45,17 @@ var Subscription = /*@__PURE__*/ (function () { while (++index < len) { var sub = _subscriptions[index]; if (isObject(sub)) { - var trial = tryCatch(sub.unsubscribe).call(sub); - if (trial === errorObject) { + try { + sub.unsubscribe(); + } + catch (e) { hasErrors = true; errors = errors || []; - var err = errorObject.e; - if (err instanceof UnsubscriptionError) { - errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); + if (e instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); } else { - errors.push(err); + errors.push(e); } } } @@ -66,36 +66,40 @@ var Subscription = /*@__PURE__*/ (function () { } }; Subscription.prototype.add = function (teardown) { - if (!teardown || (teardown === Subscription.EMPTY)) { - return Subscription.EMPTY; - } - if (teardown === this) { - return this; - } var subscription = teardown; switch (typeof teardown) { case 'function': subscription = new Subscription(teardown); case 'object': - if (subscription.closed || typeof subscription.unsubscribe !== 'function') { + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { return subscription; } else if (this.closed) { subscription.unsubscribe(); return subscription; } - else if (typeof subscription._addParent !== 'function') { + else if (!(subscription instanceof Subscription)) { var tmp = subscription; subscription = new Subscription(); subscription._subscriptions = [tmp]; } break; - default: + default: { + if (!teardown) { + return Subscription.EMPTY; + } throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + if (subscription._addParent(this)) { + var subscriptions = this._subscriptions; + if (subscriptions) { + subscriptions.push(subscription); + } + else { + this._subscriptions = [subscription]; + } } - var subscriptions = this._subscriptions || (this._subscriptions = []); - subscriptions.push(subscription); - subscription._addParent(this); return subscription; }; Subscription.prototype.remove = function (subscription) { @@ -109,15 +113,22 @@ var Subscription = /*@__PURE__*/ (function () { }; Subscription.prototype._addParent = function (parent) { var _a = this, _parent = _a._parent, _parents = _a._parents; - if (!_parent || _parent === parent) { + if (_parent === parent) { + return false; + } + else if (!_parent) { this._parent = parent; + return true; } else if (!_parents) { this._parents = [parent]; + return true; } else if (_parents.indexOf(parent) === -1) { _parents.push(parent); + return true; } + return false; }; Subscription.EMPTY = (function (empty) { empty.closed = true; |