Skip to content

Commit 11029a4

Browse files
Version bump to 2.5
1 parent f98e1a1 commit 11029a4

34 files changed

+458
-422
lines changed

Gruntfile.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ module.exports = function (grunt) {
205205
'src/core/backpressure/controlled.js',
206206
'src/core/backpressure/stopandwait.js',
207207
'src/core/backpressure/windowed.js',
208+
'src/core/linq/observable/pipe.js',
208209

209210
// Binding operators
210211
'src/core/linq/observable/multicast.js', // ConnectableObservable
@@ -497,6 +498,7 @@ module.exports = function (grunt) {
497498
'src/core/backpressure/controlled.js',
498499
'src/core/backpressure/stopandwait.js',
499500
'src/core/backpressure/windowed.js',
501+
'src/core/linq/observable/pipe.js',
500502

501503
// Binding operators
502504
'src/core/linq/observable/multicast.js', // ConnectableObservable
@@ -1046,6 +1048,7 @@ module.exports = function (grunt) {
10461048
'src/core/backpressure/pausable.js',
10471049
'src/core/backpressure/pausablebuffered.js',
10481050
'src/core/backpressure/controlled.js',
1051+
'src/core/linq/observable/pipe.js',
10491052

10501053
// Transducers
10511054
'src/core/linq/observable/transduce.js',
@@ -1215,6 +1218,7 @@ module.exports = function (grunt) {
12151218
'src/core/backpressure/pausable.js',
12161219
'src/core/backpressure/pausablebuffered.js',
12171220
'src/core/backpressure/controlled.js',
1221+
'src/core/linq/observable/pipe.js',
12181222

12191223
// Transducers
12201224
'src/core/linq/observable/transduce.js',

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rxjs",
3-
"version": "2.4.11",
3+
"version": "2.5.0",
44
"main": [
55
"dist/rx.all.js",
66
"dist/rx.all.map",

dist/rx.all.compat.js

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6065,15 +6065,17 @@
60656065
*/
60666066
Observable.fromCallback = function (func, context, selector) {
60676067
return function () {
6068-
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
6068+
var len = arguments.length, args = new Array(len)
6069+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
60696070

60706071
return new AnonymousObservable(function (observer) {
60716072
function handler() {
6072-
var results = arguments;
6073+
var len = arguments.length, results = new Array(len);
6074+
for(var i = 0; i < len; i++) { results[i] = arguments[i]; }
60736075

60746076
if (selector) {
60756077
try {
6076-
results = selector(results);
6078+
results = selector.apply(context, results);
60776079
} catch (e) {
60786080
return observer.onError(e);
60796081
}
@@ -6120,7 +6122,7 @@
61206122

61216123
if (selector) {
61226124
try {
6123-
results = selector(results);
6125+
results = selector.apply(context, results);
61246126
} catch (e) {
61256127
return observer.onError(e);
61266128
}
@@ -6829,6 +6831,38 @@
68296831
return new WindowedObservable(this, windowSize);
68306832
};
68316833

6834+
/**
6835+
* Pipes the existing Observable sequence into a Node.js Stream.
6836+
* @param {Stream} dest The destination Node.js stream.
6837+
* @returns {Stream} The destination stream.
6838+
*/
6839+
observableProto.pipe = function (dest) {
6840+
var source = this.pausableBuffered();
6841+
6842+
function onDrain() {
6843+
source.resume();
6844+
}
6845+
6846+
dest.addListener('drain', onDrain);
6847+
6848+
source.subscribe(
6849+
function (x) {
6850+
!dest.write(String(x)) && source.pause();
6851+
},
6852+
function (err) {
6853+
dest.emit('error', err);
6854+
},
6855+
function () {
6856+
// Hack check because STDIO is not closable
6857+
!dest._isStdio && dest.end();
6858+
dest.removeListener('drain', onDrain);
6859+
});
6860+
6861+
source.resume();
6862+
6863+
return dest;
6864+
};
6865+
68326866
/**
68336867
* Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each
68346868
* subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's

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: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5920,15 +5920,17 @@
59205920
*/
59215921
Observable.fromCallback = function (func, context, selector) {
59225922
return function () {
5923-
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
5923+
var len = arguments.length, args = new Array(len)
5924+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
59245925

59255926
return new AnonymousObservable(function (observer) {
59265927
function handler() {
5927-
var results = arguments;
5928+
var len = arguments.length, results = new Array(len);
5929+
for(var i = 0; i < len; i++) { results[i] = arguments[i]; }
59285930

59295931
if (selector) {
59305932
try {
5931-
results = selector(results);
5933+
results = selector.apply(context, results);
59325934
} catch (e) {
59335935
return observer.onError(e);
59345936
}
@@ -5975,7 +5977,7 @@
59755977

59765978
if (selector) {
59775979
try {
5978-
results = selector(results);
5980+
results = selector.apply(context, results);
59795981
} catch (e) {
59805982
return observer.onError(e);
59815983
}
@@ -6616,6 +6618,38 @@
66166618
return new WindowedObservable(this, windowSize);
66176619
};
66186620

6621+
/**
6622+
* Pipes the existing Observable sequence into a Node.js Stream.
6623+
* @param {Stream} dest The destination Node.js stream.
6624+
* @returns {Stream} The destination stream.
6625+
*/
6626+
observableProto.pipe = function (dest) {
6627+
var source = this.pausableBuffered();
6628+
6629+
function onDrain() {
6630+
source.resume();
6631+
}
6632+
6633+
dest.addListener('drain', onDrain);
6634+
6635+
source.subscribe(
6636+
function (x) {
6637+
!dest.write(String(x)) && source.pause();
6638+
},
6639+
function (err) {
6640+
dest.emit('error', err);
6641+
},
6642+
function () {
6643+
// Hack check because STDIO is not closable
6644+
!dest._isStdio && dest.end();
6645+
dest.removeListener('drain', onDrain);
6646+
});
6647+
6648+
source.resume();
6649+
6650+
return dest;
6651+
};
6652+
66196653
/**
66206654
* Multicasts the source sequence notifications through an instantiated subject into all uses of the sequence within a selector function. Each
66216655
* subscription to the resulting sequence causes a separate multicast invocation, exposing the sequence resulting from the selector function's

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

dist/rx.async.compat.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,15 +300,17 @@
300300
*/
301301
Observable.fromCallback = function (func, context, selector) {
302302
return function () {
303-
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
303+
var len = arguments.length, args = new Array(len)
304+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
304305

305306
return new AnonymousObservable(function (observer) {
306307
function handler() {
307-
var results = arguments;
308+
var len = arguments.length, results = new Array(len);
309+
for(var i = 0; i < len; i++) { results[i] = arguments[i]; }
308310

309311
if (selector) {
310312
try {
311-
results = selector(results);
313+
results = selector.apply(context, results);
312314
} catch (e) {
313315
return observer.onError(e);
314316
}
@@ -355,7 +357,7 @@
355357

356358
if (selector) {
357359
try {
358-
results = selector(results);
360+
results = selector.apply(context, results);
359361
} catch (e) {
360362
return observer.onError(e);
361363
}

dist/rx.async.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.async.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.async.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,15 +300,17 @@
300300
*/
301301
Observable.fromCallback = function (func, context, selector) {
302302
return function () {
303-
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
303+
var len = arguments.length, args = new Array(len)
304+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
304305

305306
return new AnonymousObservable(function (observer) {
306307
function handler() {
307-
var results = arguments;
308+
var len = arguments.length, results = new Array(len);
309+
for(var i = 0; i < len; i++) { results[i] = arguments[i]; }
308310

309311
if (selector) {
310312
try {
311-
results = selector(results);
313+
results = selector.apply(context, results);
312314
} catch (e) {
313315
return observer.onError(e);
314316
}
@@ -355,7 +357,7 @@
355357

356358
if (selector) {
357359
try {
358-
results = selector(results);
360+
results = selector.apply(context, results);
359361
} catch (e) {
360362
return observer.onError(e);
361363
}

0 commit comments

Comments
 (0)