aboutsummaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js
diff options
context:
space:
mode:
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.js63
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;