Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit 7ee63cb

Browse files
Fixing Issue #651
1 parent d8a00fb commit 7ee63cb

41 files changed

Lines changed: 235 additions & 263 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dist/rx.all.compat.js

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2604,7 +2604,7 @@
26042604
var observableEmpty = Observable.empty = function (scheduler) {
26052605
isScheduler(scheduler) || (scheduler = immediateScheduler);
26062606
return new AnonymousObservable(function (observer) {
2607-
return scheduler.schedule(function () {
2607+
return scheduler.scheduleWithState(null, function () {
26082608
observer.onCompleted();
26092609
});
26102610
});
@@ -2836,9 +2836,9 @@
28362836
*/
28372837
Observable.generate = function (initialState, condition, iterate, resultSelector, scheduler) {
28382838
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2839-
return new AnonymousObservable(function (observer) {
2840-
var first = true, state = initialState;
2841-
return scheduler.scheduleRecursive(function (self) {
2839+
return new AnonymousObservable(function (o) {
2840+
var first = true;
2841+
return scheduler.scheduleRecursiveWithState(initialState, function (state, self) {
28422842
var hasResult, result;
28432843
try {
28442844
if (first) {
@@ -2847,18 +2847,16 @@
28472847
state = iterate(state);
28482848
}
28492849
hasResult = condition(state);
2850-
if (hasResult) {
2851-
result = resultSelector(state);
2852-
}
2853-
} catch (exception) {
2854-
observer.onError(exception);
2850+
hasResult && (result = resultSelector(state));
2851+
} catch (e) {
2852+
o.onError(e);
28552853
return;
28562854
}
28572855
if (hasResult) {
2858-
observer.onNext(result);
2859-
self();
2856+
o.onNext(result);
2857+
self(state);
28602858
} else {
2861-
observer.onCompleted();
2859+
o.onCompleted();
28622860
}
28632861
});
28642862
});
@@ -2994,27 +2992,21 @@
29942992

29952993
/**
29962994
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
2997-
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
2995+
* There is an alias called 'just' or browsers <IE9.
29982996
* @param {Mixed} value Single element in the resulting observable sequence.
29992997
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
30002998
* @returns {Observable} An observable sequence containing the single specified element.
30012999
*/
3002-
var observableReturn = Observable['return'] = Observable.just = function (value, scheduler) {
3000+
var observableReturn = Observable['return'] = Observable.just = Observable.returnValue = function (value, scheduler) {
30033001
isScheduler(scheduler) || (scheduler = immediateScheduler);
30043002
return new AnonymousObservable(function (observer) {
3005-
return scheduler.schedule(function () {
3006-
observer.onNext(value);
3003+
return scheduler.scheduleWithState(value, function (_, v) {
3004+
observer.onNext(v);
30073005
observer.onCompleted();
30083006
});
30093007
});
30103008
};
30113009

3012-
/** @deprecated use return or just */
3013-
Observable.returnValue = function () {
3014-
//deprecate('returnValue', 'return or just');
3015-
return observableReturn.apply(null, arguments);
3016-
};
3017-
30183010
/**
30193011
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
30203012
* There is an alias to this method called 'throwError' for browsers <IE9.
@@ -4086,10 +4078,12 @@
40864078
* @returns {Observable} The source sequence with the side-effecting behavior applied.
40874079
*/
40884080
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
4089-
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
4090-
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
4091-
observerOrOnNext;
4081+
var source = this;
40924082
return new AnonymousObservable(function (observer) {
4083+
var tapObserver = !observerOrOnNext || isFunction(observerOrOnNext) ?
4084+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
4085+
observerOrOnNext;
4086+
40934087
return source.subscribe(function (x) {
40944088
try {
40954089
tapObserver.onNext(x);

dist/rx.all.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.compat.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.js

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2413,7 +2413,7 @@
24132413
var observableEmpty = Observable.empty = function (scheduler) {
24142414
isScheduler(scheduler) || (scheduler = immediateScheduler);
24152415
return new AnonymousObservable(function (observer) {
2416-
return scheduler.schedule(function () {
2416+
return scheduler.scheduleWithState(null, function () {
24172417
observer.onCompleted();
24182418
});
24192419
});
@@ -2645,9 +2645,9 @@
26452645
*/
26462646
Observable.generate = function (initialState, condition, iterate, resultSelector, scheduler) {
26472647
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2648-
return new AnonymousObservable(function (observer) {
2649-
var first = true, state = initialState;
2650-
return scheduler.scheduleRecursive(function (self) {
2648+
return new AnonymousObservable(function (o) {
2649+
var first = true;
2650+
return scheduler.scheduleRecursiveWithState(initialState, function (state, self) {
26512651
var hasResult, result;
26522652
try {
26532653
if (first) {
@@ -2656,18 +2656,16 @@
26562656
state = iterate(state);
26572657
}
26582658
hasResult = condition(state);
2659-
if (hasResult) {
2660-
result = resultSelector(state);
2661-
}
2662-
} catch (exception) {
2663-
observer.onError(exception);
2659+
hasResult && (result = resultSelector(state));
2660+
} catch (e) {
2661+
o.onError(e);
26642662
return;
26652663
}
26662664
if (hasResult) {
2667-
observer.onNext(result);
2668-
self();
2665+
o.onNext(result);
2666+
self(state);
26692667
} else {
2670-
observer.onCompleted();
2668+
o.onCompleted();
26712669
}
26722670
});
26732671
});
@@ -2849,27 +2847,21 @@
28492847

28502848
/**
28512849
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
2852-
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
2850+
* There is an alias called 'just' or browsers <IE9.
28532851
* @param {Mixed} value Single element in the resulting observable sequence.
28542852
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
28552853
* @returns {Observable} An observable sequence containing the single specified element.
28562854
*/
2857-
var observableReturn = Observable['return'] = Observable.just = function (value, scheduler) {
2855+
var observableReturn = Observable['return'] = Observable.just = Observable.returnValue = function (value, scheduler) {
28582856
isScheduler(scheduler) || (scheduler = immediateScheduler);
28592857
return new AnonymousObservable(function (observer) {
2860-
return scheduler.schedule(function () {
2861-
observer.onNext(value);
2858+
return scheduler.scheduleWithState(value, function (_, v) {
2859+
observer.onNext(v);
28622860
observer.onCompleted();
28632861
});
28642862
});
28652863
};
28662864

2867-
/** @deprecated use return or just */
2868-
Observable.returnValue = function () {
2869-
//deprecate('returnValue', 'return or just');
2870-
return observableReturn.apply(null, arguments);
2871-
};
2872-
28732865
/**
28742866
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
28752867
* There is an alias to this method called 'throwError' for browsers <IE9.
@@ -3941,10 +3933,12 @@
39413933
* @returns {Observable} The source sequence with the side-effecting behavior applied.
39423934
*/
39433935
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
3944-
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
3945-
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
3946-
observerOrOnNext;
3936+
var source = this;
39473937
return new AnonymousObservable(function (observer) {
3938+
var tapObserver = !observerOrOnNext || isFunction(observerOrOnNext) ?
3939+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
3940+
observerOrOnNext;
3941+
39483942
return source.subscribe(function (x) {
39493943
try {
39503944
tapObserver.onNext(x);

dist/rx.all.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.min.js

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.js

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2604,7 +2604,7 @@
26042604
var observableEmpty = Observable.empty = function (scheduler) {
26052605
isScheduler(scheduler) || (scheduler = immediateScheduler);
26062606
return new AnonymousObservable(function (observer) {
2607-
return scheduler.schedule(function () {
2607+
return scheduler.scheduleWithState(null, function () {
26082608
observer.onCompleted();
26092609
});
26102610
});
@@ -2836,9 +2836,9 @@
28362836
*/
28372837
Observable.generate = function (initialState, condition, iterate, resultSelector, scheduler) {
28382838
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2839-
return new AnonymousObservable(function (observer) {
2840-
var first = true, state = initialState;
2841-
return scheduler.scheduleRecursive(function (self) {
2839+
return new AnonymousObservable(function (o) {
2840+
var first = true;
2841+
return scheduler.scheduleRecursiveWithState(initialState, function (state, self) {
28422842
var hasResult, result;
28432843
try {
28442844
if (first) {
@@ -2847,18 +2847,16 @@
28472847
state = iterate(state);
28482848
}
28492849
hasResult = condition(state);
2850-
if (hasResult) {
2851-
result = resultSelector(state);
2852-
}
2853-
} catch (exception) {
2854-
observer.onError(exception);
2850+
hasResult && (result = resultSelector(state));
2851+
} catch (e) {
2852+
o.onError(e);
28552853
return;
28562854
}
28572855
if (hasResult) {
2858-
observer.onNext(result);
2859-
self();
2856+
o.onNext(result);
2857+
self(state);
28602858
} else {
2861-
observer.onCompleted();
2859+
o.onCompleted();
28622860
}
28632861
});
28642862
});
@@ -2994,27 +2992,21 @@
29942992

29952993
/**
29962994
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
2997-
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
2995+
* There is an alias called 'just' or browsers <IE9.
29982996
* @param {Mixed} value Single element in the resulting observable sequence.
29992997
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
30002998
* @returns {Observable} An observable sequence containing the single specified element.
30012999
*/
3002-
var observableReturn = Observable['return'] = Observable.just = function (value, scheduler) {
3000+
var observableReturn = Observable['return'] = Observable.just = Observable.returnValue = function (value, scheduler) {
30033001
isScheduler(scheduler) || (scheduler = immediateScheduler);
30043002
return new AnonymousObservable(function (observer) {
3005-
return scheduler.schedule(function () {
3006-
observer.onNext(value);
3003+
return scheduler.scheduleWithState(value, function (_, v) {
3004+
observer.onNext(v);
30073005
observer.onCompleted();
30083006
});
30093007
});
30103008
};
30113009

3012-
/** @deprecated use return or just */
3013-
Observable.returnValue = function () {
3014-
//deprecate('returnValue', 'return or just');
3015-
return observableReturn.apply(null, arguments);
3016-
};
3017-
30183010
/**
30193011
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
30203012
* There is an alias to this method called 'throwError' for browsers <IE9.
@@ -4086,10 +4078,12 @@
40864078
* @returns {Observable} The source sequence with the side-effecting behavior applied.
40874079
*/
40884080
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
4089-
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
4090-
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
4091-
observerOrOnNext;
4081+
var source = this;
40924082
return new AnonymousObservable(function (observer) {
4083+
var tapObserver = !observerOrOnNext || isFunction(observerOrOnNext) ?
4084+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
4085+
observerOrOnNext;
4086+
40934087
return source.subscribe(function (x) {
40944088
try {
40954089
tapObserver.onNext(x);

dist/rx.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.js

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2413,7 +2413,7 @@
24132413
var observableEmpty = Observable.empty = function (scheduler) {
24142414
isScheduler(scheduler) || (scheduler = immediateScheduler);
24152415
return new AnonymousObservable(function (observer) {
2416-
return scheduler.schedule(function () {
2416+
return scheduler.scheduleWithState(null, function () {
24172417
observer.onCompleted();
24182418
});
24192419
});
@@ -2645,9 +2645,9 @@
26452645
*/
26462646
Observable.generate = function (initialState, condition, iterate, resultSelector, scheduler) {
26472647
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2648-
return new AnonymousObservable(function (observer) {
2649-
var first = true, state = initialState;
2650-
return scheduler.scheduleRecursive(function (self) {
2648+
return new AnonymousObservable(function (o) {
2649+
var first = true;
2650+
return scheduler.scheduleRecursiveWithState(initialState, function (state, self) {
26512651
var hasResult, result;
26522652
try {
26532653
if (first) {
@@ -2656,18 +2656,16 @@
26562656
state = iterate(state);
26572657
}
26582658
hasResult = condition(state);
2659-
if (hasResult) {
2660-
result = resultSelector(state);
2661-
}
2662-
} catch (exception) {
2663-
observer.onError(exception);
2659+
hasResult && (result = resultSelector(state));
2660+
} catch (e) {
2661+
o.onError(e);
26642662
return;
26652663
}
26662664
if (hasResult) {
2667-
observer.onNext(result);
2668-
self();
2665+
o.onNext(result);
2666+
self(state);
26692667
} else {
2670-
observer.onCompleted();
2668+
o.onCompleted();
26712669
}
26722670
});
26732671
});
@@ -2803,27 +2801,21 @@
28032801

28042802
/**
28052803
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
2806-
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
2804+
* There is an alias called 'just' or browsers <IE9.
28072805
* @param {Mixed} value Single element in the resulting observable sequence.
28082806
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
28092807
* @returns {Observable} An observable sequence containing the single specified element.
28102808
*/
2811-
var observableReturn = Observable['return'] = Observable.just = function (value, scheduler) {
2809+
var observableReturn = Observable['return'] = Observable.just = Observable.returnValue = function (value, scheduler) {
28122810
isScheduler(scheduler) || (scheduler = immediateScheduler);
28132811
return new AnonymousObservable(function (observer) {
2814-
return scheduler.schedule(function () {
2815-
observer.onNext(value);
2812+
return scheduler.scheduleWithState(value, function (_, v) {
2813+
observer.onNext(v);
28162814
observer.onCompleted();
28172815
});
28182816
});
28192817
};
28202818

2821-
/** @deprecated use return or just */
2822-
Observable.returnValue = function () {
2823-
//deprecate('returnValue', 'return or just');
2824-
return observableReturn.apply(null, arguments);
2825-
};
2826-
28272819
/**
28282820
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
28292821
* There is an alias to this method called 'throwError' for browsers <IE9.
@@ -3895,10 +3887,12 @@
38953887
* @returns {Observable} The source sequence with the side-effecting behavior applied.
38963888
*/
38973889
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
3898-
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
3899-
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
3900-
observerOrOnNext;
3890+
var source = this;
39013891
return new AnonymousObservable(function (observer) {
3892+
var tapObserver = !observerOrOnNext || isFunction(observerOrOnNext) ?
3893+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
3894+
observerOrOnNext;
3895+
39023896
return source.subscribe(function (x) {
39033897
try {
39043898
tapObserver.onNext(x);

0 commit comments

Comments
 (0)