+ // It's only possible to null _unsubscribe - to release the reference to
+ // any teardown function passed in the constructor - if the property was
+ // actually assigned in the constructor, as there are some classes that
+ // are derived from Subscriber (which derives from Subscription) that
+ // implement an _unsubscribe method as a mechanism for obtaining
+ // unsubscription notifications and some of those subscribers are
+ // recycled. Also, in some of those subscribers, _unsubscribe switches
+ // from a prototype method to an instance property - see notifyNext in
+ // RetryWhenSubscriber.
+ if (_ctorUnsubscribe) {
+ (this as any)._unsubscribe = undefined;
+ }