rxjs-rails 2.3.0 → 2.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rxjs/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/rx.aggregates.js +115 -27
  4. data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
  5. data/vendor/assets/javascripts/rx.all.compat.js +2751 -2702
  6. data/vendor/assets/javascripts/rx.all.compat.min.js +3 -3
  7. data/vendor/assets/javascripts/rx.all.js +2605 -2589
  8. data/vendor/assets/javascripts/rx.all.min.js +3 -3
  9. data/vendor/assets/javascripts/rx.async.compat.js +41 -22
  10. data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
  11. data/vendor/assets/javascripts/rx.async.js +41 -22
  12. data/vendor/assets/javascripts/rx.async.min.js +1 -1
  13. data/vendor/assets/javascripts/rx.backpressure.js +41 -45
  14. data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
  15. data/vendor/assets/javascripts/rx.binding.js +81 -111
  16. data/vendor/assets/javascripts/rx.binding.min.js +1 -1
  17. data/vendor/assets/javascripts/rx.coincidence.js +567 -486
  18. data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
  19. data/vendor/assets/javascripts/rx.compat.js +1430 -1532
  20. data/vendor/assets/javascripts/rx.compat.min.js +2 -2
  21. data/vendor/assets/javascripts/rx.core.compat.js +76 -127
  22. data/vendor/assets/javascripts/rx.core.compat.min.js +1 -1
  23. data/vendor/assets/javascripts/rx.core.js +76 -127
  24. data/vendor/assets/javascripts/rx.core.min.js +1 -1
  25. data/vendor/assets/javascripts/rx.experimental.js +36 -36
  26. data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
  27. data/vendor/assets/javascripts/rx.joinpatterns.js +281 -281
  28. data/vendor/assets/javascripts/rx.js +1286 -1421
  29. data/vendor/assets/javascripts/rx.lite.compat.js +1443 -1749
  30. data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
  31. data/vendor/assets/javascripts/rx.lite.extras.js +133 -205
  32. data/vendor/assets/javascripts/rx.lite.extras.min.js +1 -1
  33. data/vendor/assets/javascripts/rx.lite.js +1319 -1658
  34. data/vendor/assets/javascripts/rx.lite.min.js +2 -2
  35. data/vendor/assets/javascripts/rx.min.js +2 -2
  36. data/vendor/assets/javascripts/rx.testing.js +302 -322
  37. data/vendor/assets/javascripts/rx.testing.min.js +1 -1
  38. data/vendor/assets/javascripts/rx.time.js +90 -75
  39. data/vendor/assets/javascripts/rx.time.min.js +1 -1
  40. data/vendor/assets/javascripts/rx.virtualtime.js +264 -279
  41. data/vendor/assets/javascripts/rx.virtualtime.min.js +1 -1
  42. metadata +10 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 70601079e41fc48f6d04c40d44633bc71601759b
4
- data.tar.gz: b122902fd8f2c33d1580855eb5681bcd25c04c5e
3
+ metadata.gz: 8095da97fe169dcb17a669c128e30d2b1ba3822e
4
+ data.tar.gz: 08b25037b34aaf7eb6af3a27fd15ba98224d8976
5
5
  SHA512:
6
- metadata.gz: ed3be9b2e4af24ba950cab35cbd7cbf00b7ce6b8671523ec0afb70a7431bfb4bd85a574f1f23b4801daee1458df8bc295d6262ac399718f8d8033546c2117d23
7
- data.tar.gz: 5ffc363378aafab0c6866b9f30461ad49387df906ae32feabf2038e699f6ba464df4449334315e875d018b2f00dba16f6dc500d73ceb95d48de3c6ab3c7db547
6
+ metadata.gz: 300336bd7e50073b590c7607847b108f0bb8f54d3a28b060b94c69ea84a3900d5205043010fa5c75247408e44aae3d3a90b367d245ae9bcb02c810260188293a
7
+ data.tar.gz: a1a87f293b1938f3ea16c7c60117f74654ea74c01e3fff68ae5bcf0e72a3eb57d55e6cd7c647bc6ae1ed34923ab1716fa5997991814ba8b8f6b228e3069474f8
@@ -1,6 +1,6 @@
1
1
  module Rxjs
2
2
  module Rails
3
- VERSION = "2.3.0"
3
+ VERSION = "2.3.9"
4
4
  end
5
5
  end
6
6
 
@@ -1,4 +1,4 @@
1
- // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
1
+ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
2
2
 
3
3
  ;(function (factory) {
4
4
  var objectTypes = {
@@ -33,22 +33,23 @@
33
33
  }
34
34
  }.call(this, function (root, exp, Rx, undefined) {
35
35
 
36
- // References
37
- var Observable = Rx.Observable,
38
- observableProto = Observable.prototype,
39
- CompositeDisposable = Rx.CompositeDisposable,
40
- AnonymousObservable = Rx.AnonymousObservable,
41
- isEqual = Rx.internals.isEqual,
42
- helpers = Rx.helpers,
43
- defaultComparer = helpers.defaultComparer,
44
- identity = helpers.identity,
45
- defaultSubComparer = helpers.defaultSubComparer,
46
- isPromise = helpers.isPromise,
47
- observableFromPromise = Observable.fromPromise;
48
-
49
- // Defaults
50
- var argumentOutOfRange = 'Argument out of range',
51
- sequenceContainsNoElements = "Sequence contains no elements.";
36
+ // References
37
+ var Observable = Rx.Observable,
38
+ observableProto = Observable.prototype,
39
+ CompositeDisposable = Rx.CompositeDisposable,
40
+ AnonymousObservable = Rx.AnonymousObservable,
41
+ isEqual = Rx.internals.isEqual,
42
+ helpers = Rx.helpers,
43
+ not = helpers.not,
44
+ defaultComparer = helpers.defaultComparer,
45
+ identity = helpers.identity,
46
+ defaultSubComparer = helpers.defaultSubComparer,
47
+ isPromise = helpers.isPromise,
48
+ observableFromPromise = Observable.fromPromise;
49
+
50
+ // Defaults
51
+ var argumentOutOfRange = 'Argument out of range',
52
+ sequenceContainsNoElements = "Sequence contains no elements.";
52
53
 
53
54
  observableProto.finalValue = function () {
54
55
  var source = this;
@@ -176,15 +177,13 @@
176
177
  });
177
178
  };
178
179
 
179
- /**
180
- * Determines whether an observable sequence is empty.
181
- *
182
- * @memberOf Observable#
183
- * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty.
184
- */
185
- observableProto.isEmpty = function () {
186
- return this.any().select(function (b) { return !b; });
187
- };
180
+ /**
181
+ * Determines whether an observable sequence is empty.
182
+ * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty.
183
+ */
184
+ observableProto.isEmpty = function () {
185
+ return this.any().map(not);
186
+ };
188
187
 
189
188
  /**
190
189
  * Determines whether all elements of an observable sequence satisfy a condition.
@@ -698,5 +697,94 @@
698
697
  return findValue(this, predicate, thisArg, true);
699
698
  };
700
699
 
701
- return Rx;
700
+ function toSet(source, type) {
701
+ return new AnonymousObservable(function (observer) {
702
+ var s = new type();
703
+ return source.subscribe(
704
+ s.add.bind(s),
705
+ observer.onError.bind(observer),
706
+ function () {
707
+ observer.onNext(s);
708
+ observer.onCompleted();
709
+ });
710
+ });
711
+ }
712
+ if (!!root.Set) {
713
+ /**
714
+ * Converts the observable sequence to a Set if it exists.
715
+ * @returns {Observable} An observable sequence with a single value of a Set containing the values from the observable sequence.
716
+ */
717
+ observableProto.toSet = function () {
718
+ return toSet(this, root.Set);
719
+ };
720
+ }
721
+
722
+ if (!!root.WeakSet) {
723
+ /**
724
+ * Converts the observable sequence to a WeakSet if it exists.
725
+ * @returns {Observable} An observable sequence with a single value of a WeakSet containing the values from the observable sequence.
726
+ */
727
+ observableProto.toWeakSet = function () {
728
+ return toSet(this, root.WeakSet);
729
+ };
730
+ }
731
+
732
+ function toMap(source, type, keySelector, elementSelector) {
733
+ return new AnonymousObservable(function (observer) {
734
+ var m = new type();
735
+ return source.subscribe(
736
+ function (x) {
737
+ var key;
738
+ try {
739
+ key = keySelector(x);
740
+ } catch (e) {
741
+ observer.onError(e);
742
+ return;
743
+ }
744
+
745
+ var element = x;
746
+ if (elementSelector) {
747
+ try {
748
+ element = elementSelector(x);
749
+ } catch (e) {
750
+ observer.onError(e);
751
+ return;
752
+ }
753
+ }
754
+
755
+ m.set(key, element);
756
+ },
757
+ observer.onError.bind(observer),
758
+ function () {
759
+ observer.onNext(m);
760
+ observer.onCompleted();
761
+ });
762
+ });
763
+ }
764
+
765
+ if (!!root.Map) {
766
+ /**
767
+ * Converts the observable sequence to a Map if it exists.
768
+ * @param {Function} keySelector A function which produces the key for the Map.
769
+ * @param {Function} [elementSelector] An optional function which produces the element for the Map. If not present, defaults to the value from the observable sequence.
770
+ * @returns {Observable} An observable sequence with a single value of a Map containing the values from the observable sequence.
771
+ */
772
+ observableProto.toMap = function (keySelector, elementSelector) {
773
+ return toMap(this, root.Map, keySelector, elementSelector);
774
+ };
775
+ }
776
+
777
+ if (!!root.WeakMap) {
778
+ /**
779
+ * Converts the observable sequence to a WeakMap if it exists.
780
+ * @param {Function} keySelector A function which produces the key for the WeakMap
781
+ * @param {Function} [elementSelector] An optional function which produces the element for the WeakMap. If not present, defaults to the value from the observable sequence.
782
+ * @returns {Observable} An observable sequence with a single value of a WeakMap containing the values from the observable sequence.
783
+ */
784
+ observableProto.toWeakMap = function (keySelector, elementSelector) {
785
+ return toMap(this, root.WeakMap, keySelector, elementSelector);
786
+ };
787
+ }
788
+
789
+ return Rx;
702
790
  }));
@@ -1 +1 @@
1
- (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b,c){return new p(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function f(a){if(0===a.length)throw new Error(x);return a[0]}function g(a,b,c){return new p(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function h(a,b,c,d){if(0>b)throw new Error(w);return new p(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(w))})})}function i(a,b,c){return new p(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(x))})})}function j(a,b,c){return new p(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(x))})})}function k(a,b,c){return new p(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(x))})})}function l(a,b,c,e){return new p(function(f){var g=0;return a.subscribe(function(d){var h;try{h=b.call(c,d,g,a)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:d),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:d),f.onCompleted()})})}var m=c.Observable,n=m.prototype,o=c.CompositeDisposable,p=c.AnonymousObservable,q=(c.internals.isEqual,c.helpers),r=q.defaultComparer,s=q.identity,t=q.defaultSubComparer,u=q.isPromise,v=m.fromPromise,w="Argument out of range",x="Sequence contains no elements.";return n.finalValue=function(){var a=this;return new p(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(x))})})},n.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},n.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},n.some=n.any=function(a,b){var c=this;return a?c.where(a,b).any():new p(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},n.isEmpty=function(){return this.any().select(function(a){return!a})},n.every=n.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},n.contains=function(a,b){return b||(b=r),this.where(function(c){return b(c,a)}).any()},n.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},n.sum=function(a,b){return a?this.select(a,b).sum():this.aggregate(0,function(a,b){return a+b})},n.minBy=function(a,b){return b||(b=t),e(this,a,function(a,c){return-1*b(a,c)})},n.min=function(a){return this.minBy(s,a).select(function(a){return f(a)})},n.maxBy=function(a,b){return b||(b=t),e(this,a,b)},n.max=function(a){return this.maxBy(s,a).select(function(a){return f(a)})},n.average=function(a,b){return a?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().select(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},n.sequenceEqual=function(a,b){var c=this;return b||(b=r),Array.isArray(a)?g(c,a,b):new p(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});u(a)&&(a=v(a));var j=a.subscribe(function(a){var c,f;if(g.length>0){f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new o(i,j)})},n.elementAt=function(a){return h(this,a,!1)},n.elementAtOrDefault=function(a,b){return h(this,a,!0,b)},n.single=function(a,b){return a?this.where(a,b).single():i(this,!1)},n.singleOrDefault=function(a,b,c){return a?this.where(a,c).singleOrDefault(null,b):i(this,!0,b)},n.first=function(a,b){return a?this.where(a,b).first():j(this,!1)},n.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):j(this,!0,b)},n.last=function(a,b){return a?this.where(a,b).last():k(this,!1)},n.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):k(this,!0,b)},n.find=function(a,b){return l(this,a,b,!1)},n.findIndex=function(a,b){return l(this,a,b,!0)},c});
1
+ (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b,c){return new r(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function f(a){if(0===a.length)throw new Error(A);return a[0]}function g(a,b,c){return new r(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function h(a,b,c,d){if(0>b)throw new Error(z);return new r(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(z))})})}function i(a,b,c){return new r(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(A))})})}function j(a,b,c){return new r(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(A))})})}function k(a,b,c){return new r(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(A))})})}function l(a,b,c,e){return new r(function(f){var g=0;return a.subscribe(function(d){var h;try{h=b.call(c,d,g,a)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:d),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:d),f.onCompleted()})})}function m(a,b){return new r(function(c){var d=new b;return a.subscribe(d.add.bind(d),c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})})}function n(a,b,c,d){return new r(function(e){var f=new b;return a.subscribe(function(a){var b;try{b=c(a)}catch(g){return void e.onError(g)}var h=a;if(d)try{h=d(a)}catch(g){return void e.onError(g)}f.set(b,h)},e.onError.bind(e),function(){e.onNext(f),e.onCompleted()})})}var o=c.Observable,p=o.prototype,q=c.CompositeDisposable,r=c.AnonymousObservable,s=(c.internals.isEqual,c.helpers),t=s.not,u=s.defaultComparer,v=s.identity,w=s.defaultSubComparer,x=s.isPromise,y=o.fromPromise,z="Argument out of range",A="Sequence contains no elements.";return p.finalValue=function(){var a=this;return new r(function(b){var c,d=!1;return a.subscribe(function(a){d=!0,c=a},b.onError.bind(b),function(){d?(b.onNext(c),b.onCompleted()):b.onError(new Error(A))})})},p.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},p.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},p.some=p.any=function(a,b){var c=this;return a?c.where(a,b).any():new r(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},p.isEmpty=function(){return this.any().map(t)},p.every=p.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},p.contains=function(a,b){return b||(b=u),this.where(function(c){return b(c,a)}).any()},p.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},p.sum=function(a,b){return a?this.select(a,b).sum():this.aggregate(0,function(a,b){return a+b})},p.minBy=function(a,b){return b||(b=w),e(this,a,function(a,c){return-1*b(a,c)})},p.min=function(a){return this.minBy(v,a).select(function(a){return f(a)})},p.maxBy=function(a,b){return b||(b=w),e(this,a,b)},p.max=function(a){return this.maxBy(v,a).select(function(a){return f(a)})},p.average=function(a,b){return a?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().select(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},p.sequenceEqual=function(a,b){var c=this;return b||(b=u),Array.isArray(a)?g(c,a,b):new r(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});x(a)&&(a=y(a));var j=a.subscribe(function(a){var c,f;if(g.length>0){f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new q(i,j)})},p.elementAt=function(a){return h(this,a,!1)},p.elementAtOrDefault=function(a,b){return h(this,a,!0,b)},p.single=function(a,b){return a?this.where(a,b).single():i(this,!1)},p.singleOrDefault=function(a,b,c){return a?this.where(a,c).singleOrDefault(null,b):i(this,!0,b)},p.first=function(a,b){return a?this.where(a,b).first():j(this,!1)},p.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):j(this,!0,b)},p.last=function(a,b){return a?this.where(a,b).last():k(this,!1)},p.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):k(this,!0,b)},p.find=function(a,b){return l(this,a,b,!1)},p.findIndex=function(a,b){return l(this,a,b,!0)},a.Set&&(p.toSet=function(){return m(this,a.Set)}),a.WeakSet&&(p.toWeakSet=function(){return m(this,a.WeakSet)}),a.Map&&(p.toMap=function(b,c){return n(this,a.Map,b,c)}),a.WeakMap&&(p.toWeakMap=function(b,c){return n(this,a.WeakMap,b,c)}),c});