diff --git a/src/Observable.ts b/src/Observable.ts index 74bc9af34f..25ccebbde9 100644 --- a/src/Observable.ts +++ b/src/Observable.ts @@ -199,7 +199,7 @@ export class Observable implements Subscribable { if (operator) { operator.call(sink, this.source); } else { - sink.add(this.source ? this._subscribe(sink) : this._trySubscribe(sink)); + sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink)); } if (sink.syncErrorThrowable) { diff --git a/src/Subscriber.ts b/src/Subscriber.ts index 36d8459191..daa1536416 100644 --- a/src/Subscriber.ts +++ b/src/Subscriber.ts @@ -68,6 +68,7 @@ export class Subscriber extends Subscription implements Observer { } if (typeof destinationOrNext === 'object') { if (destinationOrNext instanceof Subscriber) { + this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; this.destination = (> destinationOrNext); ( this.destination).add(this); } else {