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

Commit 1f77b94

Browse files
Adding back fromArray perf
1 parent 095a4a7 commit 1f77b94

19 files changed

Lines changed: 304 additions & 130 deletions

Gruntfile.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ var browsers = [{
100100
'src/core/linq/observable/defer.js',
101101
'src/core/linq/observable/empty.js',
102102
'src/core/linq/observable/from.js',
103-
'src/core/linq/observable/fromarray.js',
103+
'src/core/perf/operators/fromarray.js',
104104
'src/core/linq/observable/generate.js',
105105
'src/core/linq/observable/of.js',
106106
'src/core/linq/observable/never.js',
@@ -388,7 +388,7 @@ var browsers = [{
388388
'src/core/linq/observable/defer.js',
389389
'src/core/linq/observable/empty.js',
390390
'src/core/linq/observable/from.js',
391-
'src/core/linq/observable/fromarray.js',
391+
'src/core/perf/operators/fromarray.js',
392392
'src/core/linq/observable/generate.js',
393393
'src/core/linq/observable/of.js',
394394
'src/core/linq/observable/never.js',
@@ -676,7 +676,7 @@ var browsers = [{
676676
'src/core/linq/observable/defer.js',
677677
'src/core/linq/observable/empty.js',
678678
'src/core/linq/observable/from.js',
679-
'src/core/linq/observable/fromarray.js',
679+
'src/core/perf/operators/fromarray.js',
680680
'src/core/linq/observable/generate.js',
681681
'src/core/linq/observable/never.js',
682682
'src/core/linq/observable/of.js',
@@ -820,7 +820,7 @@ var browsers = [{
820820
'src/core/linq/observable/defer.js',
821821
'src/core/linq/observable/empty.js',
822822
'src/core/linq/observable/from.js',
823-
'src/core/linq/observable/fromarray.js',
823+
'src/core/perf/operators/fromarray.js',
824824
'src/core/linq/observable/generate.js',
825825
'src/core/linq/observable/never.js',
826826
'src/core/linq/observable/of.js',
@@ -954,7 +954,7 @@ var browsers = [{
954954
'src/core/linq/observable/defer.js',
955955
'src/core/linq/observable/empty.js',
956956
'src/core/linq/observable/from.js',
957-
'src/core/linq/observable/fromarray.js',
957+
'src/core/perf/operators/fromarray.js',
958958
'src/core/linq/observable/never.js',
959959
'src/core/linq/observable/of.js',
960960
'src/core/linq/observable/pairs.js',
@@ -1119,7 +1119,7 @@ var browsers = [{
11191119
'src/core/linq/observable/defer.js',
11201120
'src/core/linq/observable/empty.js',
11211121
'src/core/linq/observable/from.js',
1122-
'src/core/linq/observable/fromarray.js',
1122+
'src/core/perf/operators/fromarray.js',
11231123
'src/core/linq/observable/never.js',
11241124
'src/core/linq/observable/of.js',
11251125
'src/core/linq/observable/pairs.js',

dist/rx.all.compat.js

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2691,25 +2691,54 @@
26912691
});
26922692
};
26932693

2694+
var FromArrayObservable = (function(__super__) {
2695+
inherits(FromArrayObservable, __super__);
2696+
function FromArrayObservable(args, scheduler) {
2697+
this.args = args;
2698+
this.scheduler = scheduler || currentThreadScheduler;
2699+
__super__.call(this);
2700+
}
2701+
2702+
FromArrayObservable.prototype.subscribeCore = function (observer) {
2703+
var sink = new FromArraySink(observer, this);
2704+
return sink.run();
2705+
};
2706+
2707+
return FromArrayObservable;
2708+
}(ObservableBase));
2709+
2710+
var FromArraySink = (function () {
2711+
function FromArraySink(observer, parent) {
2712+
this.observer = observer;
2713+
this.parent = parent;
2714+
}
2715+
2716+
function loopRecursive(state, recurse) {
2717+
if (state.i < state.len) {
2718+
state.observer.onNext(state.args[state.i++]);
2719+
recurse(state);
2720+
} else {
2721+
state.observer.onCompleted();
2722+
}
2723+
}
2724+
2725+
FromArraySink.prototype.run = function () {
2726+
return this.parent.scheduler.scheduleRecursiveWithState(
2727+
{i: 0, args: this.parent.args, len: this.parent.args.length, observer: this.observer },
2728+
loopRecursive);
2729+
};
2730+
2731+
return FromArraySink;
2732+
}());
2733+
26942734
/**
2695-
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2696-
* @deprecated use Observable.from or Observable.of
2697-
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2698-
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2699-
*/
2735+
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2736+
* @deprecated use Observable.from or Observable.of
2737+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2738+
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2739+
*/
27002740
var observableFromArray = Observable.fromArray = function (array, scheduler) {
2701-
var len = array.length;
2702-
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2703-
return new AnonymousObservable(function (observer) {
2704-
return scheduler.scheduleRecursiveWithState(0, function (i, self) {
2705-
if (i < len) {
2706-
observer.onNext(array[i]);
2707-
self(i + 1);
2708-
} else {
2709-
observer.onCompleted();
2710-
}
2711-
});
2712-
});
2741+
return new FromArrayObservable(array, scheduler)
27132742
};
27142743

27152744
/**

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: 4 additions & 4 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: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2502,25 +2502,54 @@
25022502
});
25032503
};
25042504

2505+
var FromArrayObservable = (function(__super__) {
2506+
inherits(FromArrayObservable, __super__);
2507+
function FromArrayObservable(args, scheduler) {
2508+
this.args = args;
2509+
this.scheduler = scheduler || currentThreadScheduler;
2510+
__super__.call(this);
2511+
}
2512+
2513+
FromArrayObservable.prototype.subscribeCore = function (observer) {
2514+
var sink = new FromArraySink(observer, this);
2515+
return sink.run();
2516+
};
2517+
2518+
return FromArrayObservable;
2519+
}(ObservableBase));
2520+
2521+
var FromArraySink = (function () {
2522+
function FromArraySink(observer, parent) {
2523+
this.observer = observer;
2524+
this.parent = parent;
2525+
}
2526+
2527+
function loopRecursive(state, recurse) {
2528+
if (state.i < state.len) {
2529+
state.observer.onNext(state.args[state.i++]);
2530+
recurse(state);
2531+
} else {
2532+
state.observer.onCompleted();
2533+
}
2534+
}
2535+
2536+
FromArraySink.prototype.run = function () {
2537+
return this.parent.scheduler.scheduleRecursiveWithState(
2538+
{i: 0, args: this.parent.args, len: this.parent.args.length, observer: this.observer },
2539+
loopRecursive);
2540+
};
2541+
2542+
return FromArraySink;
2543+
}());
2544+
25052545
/**
2506-
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2507-
* @deprecated use Observable.from or Observable.of
2508-
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2509-
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2510-
*/
2546+
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2547+
* @deprecated use Observable.from or Observable.of
2548+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2549+
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2550+
*/
25112551
var observableFromArray = Observable.fromArray = function (array, scheduler) {
2512-
var len = array.length;
2513-
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2514-
return new AnonymousObservable(function (observer) {
2515-
return scheduler.scheduleRecursiveWithState(0, function (i, self) {
2516-
if (i < len) {
2517-
observer.onNext(array[i]);
2518-
self(i + 1);
2519-
} else {
2520-
observer.onCompleted();
2521-
}
2522-
});
2523-
});
2552+
return new FromArrayObservable(array, scheduler)
25242553
};
25252554

25262555
/**

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: 4 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: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2691,25 +2691,54 @@
26912691
});
26922692
};
26932693

2694+
var FromArrayObservable = (function(__super__) {
2695+
inherits(FromArrayObservable, __super__);
2696+
function FromArrayObservable(args, scheduler) {
2697+
this.args = args;
2698+
this.scheduler = scheduler || currentThreadScheduler;
2699+
__super__.call(this);
2700+
}
2701+
2702+
FromArrayObservable.prototype.subscribeCore = function (observer) {
2703+
var sink = new FromArraySink(observer, this);
2704+
return sink.run();
2705+
};
2706+
2707+
return FromArrayObservable;
2708+
}(ObservableBase));
2709+
2710+
var FromArraySink = (function () {
2711+
function FromArraySink(observer, parent) {
2712+
this.observer = observer;
2713+
this.parent = parent;
2714+
}
2715+
2716+
function loopRecursive(state, recurse) {
2717+
if (state.i < state.len) {
2718+
state.observer.onNext(state.args[state.i++]);
2719+
recurse(state);
2720+
} else {
2721+
state.observer.onCompleted();
2722+
}
2723+
}
2724+
2725+
FromArraySink.prototype.run = function () {
2726+
return this.parent.scheduler.scheduleRecursiveWithState(
2727+
{i: 0, args: this.parent.args, len: this.parent.args.length, observer: this.observer },
2728+
loopRecursive);
2729+
};
2730+
2731+
return FromArraySink;
2732+
}());
2733+
26942734
/**
2695-
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2696-
* @deprecated use Observable.from or Observable.of
2697-
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2698-
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2699-
*/
2735+
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
2736+
* @deprecated use Observable.from or Observable.of
2737+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
2738+
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2739+
*/
27002740
var observableFromArray = Observable.fromArray = function (array, scheduler) {
2701-
var len = array.length;
2702-
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2703-
return new AnonymousObservable(function (observer) {
2704-
return scheduler.scheduleRecursiveWithState(0, function (i, self) {
2705-
if (i < len) {
2706-
observer.onNext(array[i]);
2707-
self(i + 1);
2708-
} else {
2709-
observer.onCompleted();
2710-
}
2711-
});
2712-
});
2741+
return new FromArrayObservable(array, scheduler)
27132742
};
27142743

27152744
/**

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

0 commit comments

Comments
 (0)