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

Commit 5811699

Browse files
Removing bind and cleaning up join patterns
1 parent 7f32d00 commit 5811699

29 files changed

+198
-251
lines changed

Gruntfile.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,6 +1830,7 @@ module.exports = function (grunt) {
18301830
'src/core/headers/license.js',
18311831
'src/core/headers/subintro.js',
18321832
'src/core/headers/joinpatternsheader.js',
1833+
'src/core/internal/trycatch.js',
18331834
'src/core/internal/map.js',
18341835
'src/core/joins/pattern.js',
18351836
'src/core/joins/plan.js',
@@ -1847,6 +1848,7 @@ module.exports = function (grunt) {
18471848
'src/core/headers/license.js',
18481849
'src/core/headers/liteintro.js',
18491850
'src/core/headers/joinpatternsheader.js',
1851+
'src/core/internal/trycatch.js',
18501852
'src/core/internal/map.js',
18511853
'src/core/joins/pattern.js',
18521854
'src/core/joins/plan.js',
@@ -1864,6 +1866,7 @@ module.exports = function (grunt) {
18641866
'src/core/headers/license.js',
18651867
'src/core/headers/liteintro-compat.js',
18661868
'src/core/headers/joinpatternsheader.js',
1869+
'src/core/internal/trycatch.js',
18671870
'src/core/internal/map.js',
18681871
'src/core/joins/pattern.js',
18691872
'src/core/joins/plan.js',

dist/rx.all.compat.js

Lines changed: 15 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -579,31 +579,7 @@
579579
}
580580

581581
// Utilities
582-
var slice = Array.prototype.slice,
583-
toString = Object.prototype.toString;
584-
585-
if (!Function.prototype.bind) {
586-
Function.prototype.bind = function (that) {
587-
var target = this,
588-
args = slice.call(arguments, 1);
589-
var bound = function () {
590-
if (this instanceof bound) {
591-
function F() { }
592-
F.prototype = target.prototype;
593-
var self = new F();
594-
var result = target.apply(self, args.concat(slice.call(arguments)));
595-
if (Object(result) === result) {
596-
return result;
597-
}
598-
return self;
599-
} else {
600-
return target.apply(that, args.concat(slice.call(arguments)));
601-
}
602-
};
603-
604-
return bound;
605-
};
606-
}
582+
var toString = Object.prototype.toString;
607583

608584
if (!Array.prototype.forEach) {
609585
Array.prototype.forEach = function (callback, thisArg) {
@@ -9511,26 +9487,25 @@ Observable.fromNodeCallback = function (fn, ctx, selector) {
95119487
};
95129488

95139489
function Plan(expression, selector) {
9514-
this.expression = expression;
9515-
this.selector = selector;
9490+
this.expression = expression;
9491+
this.selector = selector;
9492+
}
9493+
9494+
function handleOnError(o) { return function (e) { o.onError(e); }; }
9495+
function handleOnNext(self, observer) {
9496+
return function onNext () {
9497+
var result = tryCatch(self.selector).apply(self, arguments);
9498+
if (result === errorObj) { return observer.onError(result.e); }
9499+
observer.onNext(result);
9500+
};
95169501
}
95179502

95189503
Plan.prototype.activate = function (externalSubscriptions, observer, deactivate) {
9519-
var self = this;
9520-
var joinObservers = [];
9504+
var joinObservers = [], errHandler = handleOnError(observer);
95219505
for (var i = 0, len = this.expression.patterns.length; i < len; i++) {
9522-
joinObservers.push(planCreateObserver(externalSubscriptions, this.expression.patterns[i], observer.onError.bind(observer)));
9506+
joinObservers.push(planCreateObserver(externalSubscriptions, this.expression.patterns[i], errHandler));
95239507
}
9524-
var activePlan = new ActivePlan(joinObservers, function () {
9525-
var result;
9526-
try {
9527-
result = self.selector.apply(self, arguments);
9528-
} catch (e) {
9529-
observer.onError(e);
9530-
return;
9531-
}
9532-
observer.onNext(result);
9533-
}, function () {
9508+
var activePlan = new ActivePlan(joinObservers, handleOnNext(this, observer), function () {
95349509
for (var j = 0, jlen = joinObservers.length; j < jlen; j++) {
95359510
joinObservers[j].removeActivePlan(activePlan);
95369511
}

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: 5 additions & 5 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: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9232,26 +9232,25 @@ Observable.fromNodeCallback = function (fn, ctx, selector) {
92329232
};
92339233

92349234
function Plan(expression, selector) {
9235-
this.expression = expression;
9236-
this.selector = selector;
9235+
this.expression = expression;
9236+
this.selector = selector;
9237+
}
9238+
9239+
function handleOnError(o) { return function (e) { o.onError(e); }; }
9240+
function handleOnNext(self, observer) {
9241+
return function onNext () {
9242+
var result = tryCatch(self.selector).apply(self, arguments);
9243+
if (result === errorObj) { return observer.onError(result.e); }
9244+
observer.onNext(result);
9245+
};
92379246
}
92389247

92399248
Plan.prototype.activate = function (externalSubscriptions, observer, deactivate) {
9240-
var self = this;
9241-
var joinObservers = [];
9249+
var joinObservers = [], errHandler = handleOnError(observer);
92429250
for (var i = 0, len = this.expression.patterns.length; i < len; i++) {
9243-
joinObservers.push(planCreateObserver(externalSubscriptions, this.expression.patterns[i], observer.onError.bind(observer)));
9251+
joinObservers.push(planCreateObserver(externalSubscriptions, this.expression.patterns[i], errHandler));
92449252
}
9245-
var activePlan = new ActivePlan(joinObservers, function () {
9246-
var result;
9247-
try {
9248-
result = self.selector.apply(self, arguments);
9249-
} catch (e) {
9250-
observer.onError(e);
9251-
return;
9252-
}
9253-
observer.onNext(result);
9254-
}, function () {
9253+
var activePlan = new ActivePlan(joinObservers, handleOnNext(this, observer), function () {
92559254
for (var j = 0, jlen = joinObservers.length; j < jlen; j++) {
92569255
joinObservers[j].removeActivePlan(activePlan);
92579256
}

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: 5 additions & 5 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: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -579,31 +579,7 @@
579579
}
580580

581581
// Utilities
582-
var slice = Array.prototype.slice,
583-
toString = Object.prototype.toString;
584-
585-
if (!Function.prototype.bind) {
586-
Function.prototype.bind = function (that) {
587-
var target = this,
588-
args = slice.call(arguments, 1);
589-
var bound = function () {
590-
if (this instanceof bound) {
591-
function F() { }
592-
F.prototype = target.prototype;
593-
var self = new F();
594-
var result = target.apply(self, args.concat(slice.call(arguments)));
595-
if (Object(result) === result) {
596-
return result;
597-
}
598-
return self;
599-
} else {
600-
return target.apply(that, args.concat(slice.call(arguments)));
601-
}
602-
};
603-
604-
return bound;
605-
};
606-
}
582+
var toString = Object.prototype.toString;
607583

608584
if (!Array.prototype.forEach) {
609585
Array.prototype.forEach = function (callback, thisArg) {

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: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)