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

Commit 266c803

Browse files
Adding benchmarks for Issue #519
1 parent f8d4fa3 commit 266c803

31 files changed

Lines changed: 481 additions & 478 deletions

dist/rx.all.compat.js

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,17 +2361,22 @@
23612361
disposableEmpty;
23622362
}
23632363

2364+
function setDisposable(s, state) {
2365+
var ado = state[0], self = state[1];
2366+
try {
2367+
ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
2368+
} catch (e) {
2369+
if (!ado.fail(e)) { throw e; }
2370+
}
2371+
}
2372+
23642373
function subscribe(observer) {
2365-
var self = this;
2366-
var ado = new AutoDetachObserver(observer);
2374+
var ado = new AutoDetachObserver(observer), state = [ado, this];
2375+
23672376
if (currentThreadScheduler.scheduleRequired()) {
2368-
currentThreadScheduler.scheduleWithState(ado, function (_, ado) { return self.scheduledSubscribe(_, ado); })
2377+
currentThreadScheduler.scheduleWithState(state, setDisposable);
23692378
} else {
2370-
try {
2371-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2372-
} catch (e) {
2373-
if (!ado.fail(e)) { throw e; }
2374-
}
2379+
setDisposable(null, state);
23752380
}
23762381

23772382
return ado;
@@ -2381,15 +2386,6 @@
23812386
__super__.call(this, subscribe);
23822387
}
23832388

2384-
ObservableBase.prototype.scheduledSubscribe = function (_, ado) {
2385-
try {
2386-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2387-
} catch (e) {
2388-
if (!ado.fail(e)) { throw e; }
2389-
}
2390-
return disposableEmpty;
2391-
};
2392-
23932389
return ObservableBase;
23942390

23952391
}(Observable));
@@ -9706,6 +9702,7 @@
97069702
var AnonymousObservable = Rx.AnonymousObservable = (function (__super__) {
97079703
inherits(AnonymousObservable, __super__);
97089704

9705+
// Fix subscriber to check for undefined or function returned to decorate as Disposable
97099706
function fixSubscriber(subscriber) {
97109707
if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
97119708

@@ -9714,37 +9711,33 @@
97149711
disposableEmpty;
97159712
}
97169713

9717-
function subscribe(observer) {
9718-
var self = this;
9719-
var ado = new AutoDetachObserver(observer);
9720-
if (currentThreadScheduler.scheduleRequired()) {
9721-
currentThreadScheduler.scheduleWithState(ado, function (x, ado) { return self.scheduledSubscribe(x, ado); })
9722-
} else {
9723-
try {
9724-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
9725-
} catch (e) {
9726-
if (!ado.fail(e)) { throw e; }
9727-
}
9714+
function setDisposable(s, state) {
9715+
var ado = state[0], subscribe = state[1];
9716+
try {
9717+
ado.setDisposable(fixSubscriber(subscribe(ado)));
9718+
} catch (e) {
9719+
if (!ado.fail(e)) { throw e; }
97289720
}
9729-
9730-
return ado;
97319721
}
97329722

9733-
function AnonymousObservable(subscribeMethod, parent) {
9723+
function AnonymousObservable(subscribe, parent) {
97349724
this.source = parent;
9735-
this.subscribeCore = subscribeMethod;
97369725

9737-
__super__.call(this, subscribe);
9738-
}
9726+
function s(observer) {
97399727

9740-
AnonymousObservable.prototype.scheduledSubscribe = function (x, ado) {
9741-
try {
9742-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
9743-
} catch (e) {
9744-
if (!ado.fail(e)) { throw e; }
9728+
var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
9729+
9730+
if (currentThreadScheduler.scheduleRequired()) {
9731+
currentThreadScheduler.scheduleWithState(state, setDisposable);
9732+
} else {
9733+
setDisposable(null, state);
9734+
}
9735+
9736+
return ado;
97459737
}
9746-
return disposableEmpty;
9747-
};
9738+
9739+
__super__.call(this, s);
9740+
}
97489741

97499742
return AnonymousObservable;
97509743

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: 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.js

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,17 +2172,22 @@
21722172
disposableEmpty;
21732173
}
21742174

2175+
function setDisposable(s, state) {
2176+
var ado = state[0], self = state[1];
2177+
try {
2178+
ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
2179+
} catch (e) {
2180+
if (!ado.fail(e)) { throw e; }
2181+
}
2182+
}
2183+
21752184
function subscribe(observer) {
2176-
var self = this;
2177-
var ado = new AutoDetachObserver(observer);
2185+
var ado = new AutoDetachObserver(observer), state = [ado, this];
2186+
21782187
if (currentThreadScheduler.scheduleRequired()) {
2179-
currentThreadScheduler.scheduleWithState(ado, function (_, ado) { return self.scheduledSubscribe(_, ado); })
2188+
currentThreadScheduler.scheduleWithState(state, setDisposable);
21802189
} else {
2181-
try {
2182-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2183-
} catch (e) {
2184-
if (!ado.fail(e)) { throw e; }
2185-
}
2190+
setDisposable(null, state);
21862191
}
21872192

21882193
return ado;
@@ -2192,15 +2197,6 @@
21922197
__super__.call(this, subscribe);
21932198
}
21942199

2195-
ObservableBase.prototype.scheduledSubscribe = function (_, ado) {
2196-
try {
2197-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2198-
} catch (e) {
2199-
if (!ado.fail(e)) { throw e; }
2200-
}
2201-
return disposableEmpty;
2202-
};
2203-
22042200
return ObservableBase;
22052201

22062202
}(Observable));
@@ -9449,6 +9445,7 @@
94499445
var AnonymousObservable = Rx.AnonymousObservable = (function (__super__) {
94509446
inherits(AnonymousObservable, __super__);
94519447

9448+
// Fix subscriber to check for undefined or function returned to decorate as Disposable
94529449
function fixSubscriber(subscriber) {
94539450
if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
94549451

@@ -9457,37 +9454,33 @@
94579454
disposableEmpty;
94589455
}
94599456

9460-
function subscribe(observer) {
9461-
var self = this;
9462-
var ado = new AutoDetachObserver(observer);
9463-
if (currentThreadScheduler.scheduleRequired()) {
9464-
currentThreadScheduler.scheduleWithState(ado, function (x, ado) { return self.scheduledSubscribe(x, ado); })
9465-
} else {
9466-
try {
9467-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
9468-
} catch (e) {
9469-
if (!ado.fail(e)) { throw e; }
9470-
}
9457+
function setDisposable(s, state) {
9458+
var ado = state[0], subscribe = state[1];
9459+
try {
9460+
ado.setDisposable(fixSubscriber(subscribe(ado)));
9461+
} catch (e) {
9462+
if (!ado.fail(e)) { throw e; }
94719463
}
9472-
9473-
return ado;
94749464
}
94759465

9476-
function AnonymousObservable(subscribeMethod, parent) {
9466+
function AnonymousObservable(subscribe, parent) {
94779467
this.source = parent;
9478-
this.subscribeCore = subscribeMethod;
94799468

9480-
__super__.call(this, subscribe);
9481-
}
9469+
function s(observer) {
94829470

9483-
AnonymousObservable.prototype.scheduledSubscribe = function (x, ado) {
9484-
try {
9485-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
9486-
} catch (e) {
9487-
if (!ado.fail(e)) { throw e; }
9471+
var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
9472+
9473+
if (currentThreadScheduler.scheduleRequired()) {
9474+
currentThreadScheduler.scheduleWithState(state, setDisposable);
9475+
} else {
9476+
setDisposable(null, state);
9477+
}
9478+
9479+
return ado;
94889480
}
9489-
return disposableEmpty;
9490-
};
9481+
9482+
__super__.call(this, s);
9483+
}
94919484

94929485
return AnonymousObservable;
94939486

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: 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.js

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,17 +2361,22 @@
23612361
disposableEmpty;
23622362
}
23632363

2364+
function setDisposable(s, state) {
2365+
var ado = state[0], self = state[1];
2366+
try {
2367+
ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
2368+
} catch (e) {
2369+
if (!ado.fail(e)) { throw e; }
2370+
}
2371+
}
2372+
23642373
function subscribe(observer) {
2365-
var self = this;
2366-
var ado = new AutoDetachObserver(observer);
2374+
var ado = new AutoDetachObserver(observer), state = [ado, this];
2375+
23672376
if (currentThreadScheduler.scheduleRequired()) {
2368-
currentThreadScheduler.scheduleWithState(ado, function (_, ado) { return self.scheduledSubscribe(_, ado); })
2377+
currentThreadScheduler.scheduleWithState(state, setDisposable);
23692378
} else {
2370-
try {
2371-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2372-
} catch (e) {
2373-
if (!ado.fail(e)) { throw e; }
2374-
}
2379+
setDisposable(null, state);
23752380
}
23762381

23772382
return ado;
@@ -2381,15 +2386,6 @@
23812386
__super__.call(this, subscribe);
23822387
}
23832388

2384-
ObservableBase.prototype.scheduledSubscribe = function (_, ado) {
2385-
try {
2386-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
2387-
} catch (e) {
2388-
if (!ado.fail(e)) { throw e; }
2389-
}
2390-
return disposableEmpty;
2391-
};
2392-
23932389
return ObservableBase;
23942390

23952391
}(Observable));
@@ -4698,6 +4694,7 @@
46984694
var AnonymousObservable = Rx.AnonymousObservable = (function (__super__) {
46994695
inherits(AnonymousObservable, __super__);
47004696

4697+
// Fix subscriber to check for undefined or function returned to decorate as Disposable
47014698
function fixSubscriber(subscriber) {
47024699
if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
47034700

@@ -4706,37 +4703,33 @@
47064703
disposableEmpty;
47074704
}
47084705

4709-
function subscribe(observer) {
4710-
var self = this;
4711-
var ado = new AutoDetachObserver(observer);
4712-
if (currentThreadScheduler.scheduleRequired()) {
4713-
currentThreadScheduler.scheduleWithState(ado, function (x, ado) { return self.scheduledSubscribe(x, ado); })
4714-
} else {
4715-
try {
4716-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
4717-
} catch (e) {
4718-
if (!ado.fail(e)) { throw e; }
4719-
}
4706+
function setDisposable(s, state) {
4707+
var ado = state[0], subscribe = state[1];
4708+
try {
4709+
ado.setDisposable(fixSubscriber(subscribe(ado)));
4710+
} catch (e) {
4711+
if (!ado.fail(e)) { throw e; }
47204712
}
4721-
4722-
return ado;
47234713
}
47244714

4725-
function AnonymousObservable(subscribeMethod, parent) {
4715+
function AnonymousObservable(subscribe, parent) {
47264716
this.source = parent;
4727-
this.subscribeCore = subscribeMethod;
47284717

4729-
__super__.call(this, subscribe);
4730-
}
4718+
function s(observer) {
47314719

4732-
AnonymousObservable.prototype.scheduledSubscribe = function (x, ado) {
4733-
try {
4734-
ado.setDisposable(fixSubscriber(this.subscribeCore(ado)));
4735-
} catch (e) {
4736-
if (!ado.fail(e)) { throw e; }
4720+
var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
4721+
4722+
if (currentThreadScheduler.scheduleRequired()) {
4723+
currentThreadScheduler.scheduleWithState(state, setDisposable);
4724+
} else {
4725+
setDisposable(null, state);
4726+
}
4727+
4728+
return ado;
47374729
}
4738-
return disposableEmpty;
4739-
};
4730+
4731+
__super__.call(this, s);
4732+
}
47404733

47414734
return AnonymousObservable;
47424735

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.

0 commit comments

Comments
 (0)