diff --git a/spec/Subject-spec.js b/spec/Subject-spec.js index 187f91b671..777a28f987 100644 --- a/spec/Subject-spec.js +++ b/spec/Subject-spec.js @@ -411,7 +411,7 @@ describe('Subject', function () { } }; - var sub = Subject.create(source, destination); + var sub = Subject.create(destination, source); sub.subscribe(function (x) { output.push(x); @@ -456,7 +456,7 @@ describe('Subject', function () { } }; - var sub = Subject.create(source, destination); + var sub = Subject.create(destination, source); sub.subscribe(function (x) { output.push(x); @@ -571,7 +571,7 @@ describe('Subject', function () { it('should not eager', function () { var subscribed = false; - var subject = new Rx.Subject(new Rx.Observable(function (observer) { + var subject = new Rx.Subject(null, new Rx.Observable(function (observer) { subscribed = true; var subscription = Rx.Observable.of('x').subscribe(observer); return function () { diff --git a/src/Subject.ts b/src/Subject.ts index 0275ae5baf..315dc6817f 100644 --- a/src/Subject.ts +++ b/src/Subject.ts @@ -8,21 +8,17 @@ import {rxSubscriber} from './symbol/rxSubscriber'; export class Subject extends Observable implements Observer, Subscription { - static create: Function = (source: Observable, destination: Observer): Subject => { - return new Subject(source, destination); + static create: Function = (destination: Observer, source: Observable): Subject => { + return new Subject(destination, source); }; - constructor(source?: Observable, destination?: Observer) { + constructor(protected destination?: Observer, protected source?: Observable) { super(); - this.source = source; - this.destination = destination; } public observers: Observer[] = []; public isUnsubscribed: boolean = false; - protected destination: Observer; - protected isStopped: boolean = false; protected hasErrored: boolean = false; protected errorValue: any; @@ -30,7 +26,7 @@ export class Subject extends Observable implements Observer, Subscripti protected hasCompleted: boolean = false; lift(operator: Operator): Observable { - const subject = new Subject(this, this.destination || this); + const subject = new Subject(this.destination || this, this); subject.operator = operator; return subject; } diff --git a/src/observable/dom/WebSocketSubject.ts b/src/observable/dom/WebSocketSubject.ts index 0013d26dc2..5cf244d4b5 100644 --- a/src/observable/dom/WebSocketSubject.ts +++ b/src/observable/dom/WebSocketSubject.ts @@ -39,7 +39,7 @@ export class WebSocketSubject extends Subject { constructor(urlConfigOrSource: string | WebSocketSubjectConfig | Observable, destination?: Observer) { if (urlConfigOrSource instanceof Observable) { - super(urlConfigOrSource, destination); + super(destination, urlConfigOrSource); } else { super(); this.WebSocketCtor = root.WebSocket;