diff --git a/src/internal/Subscription.ts b/src/internal/Subscription.ts index 0f1906a27e..1a07ffa508 100644 --- a/src/internal/Subscription.ts +++ b/src/internal/Subscription.ts @@ -130,6 +130,11 @@ export class Subscription implements SubscriptionLike { */ add(teardown: TeardownLogic): Subscription { let subscription = (teardown); + + if (!(teardown)) { + return Subscription.EMPTY; + } + switch (typeof teardown) { case 'function': subscription = new Subscription(<(() => void)>teardown); @@ -147,9 +152,6 @@ export class Subscription implements SubscriptionLike { } break; default: { - if (!(teardown)) { - return Subscription.EMPTY; - } throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); } }