rxjs-rails 2.3.0 → 2.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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});