rxjs-rails 2.2.17 → 2.2.18

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Rakefile +19 -0
  4. data/lib/rxjs/rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/rx.aggregates.js +23 -23
  6. data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
  7. data/vendor/assets/javascripts/rx.async.compat.js +2 -2
  8. data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
  9. data/vendor/assets/javascripts/rx.async.js +2 -2
  10. data/vendor/assets/javascripts/rx.async.min.js +1 -1
  11. data/vendor/assets/javascripts/rx.backpressure.js +2 -2
  12. data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
  13. data/vendor/assets/javascripts/rx.binding.js +85 -85
  14. data/vendor/assets/javascripts/rx.coincidence.js +17 -17
  15. data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
  16. data/vendor/assets/javascripts/rx.compat.js +461 -456
  17. data/vendor/assets/javascripts/rx.compat.min.js +2 -2
  18. data/vendor/assets/javascripts/rx.experimental.js +31 -31
  19. data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
  20. data/vendor/assets/javascripts/rx.joinpatterns.js +284 -284
  21. data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
  22. data/vendor/assets/javascripts/rx.js +446 -441
  23. data/vendor/assets/javascripts/rx.lite.compat.js +469 -464
  24. data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
  25. data/vendor/assets/javascripts/rx.lite.js +469 -464
  26. data/vendor/assets/javascripts/rx.lite.min.js +2 -2
  27. data/vendor/assets/javascripts/rx.min.js +2 -2
  28. data/vendor/assets/javascripts/rx.testing.js +165 -165
  29. data/vendor/assets/javascripts/rx.time.js +19 -19
  30. data/vendor/assets/javascripts/rx.time.min.js +1 -1
  31. data/vendor/assets/javascripts/rx.virtualtime.js +2 -2
  32. metadata +3 -2
@@ -1,27 +1,32 @@
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 (undefined) {
4
4
 
5
- var objectTypes = {
6
- 'boolean': false,
7
- 'function': true,
8
- 'object': true,
9
- 'number': false,
10
- 'string': false,
11
- 'undefined': false
12
- };
5
+ var objectTypes = {
6
+ 'boolean': false,
7
+ 'function': true,
8
+ 'object': true,
9
+ 'number': false,
10
+ 'string': false,
11
+ 'undefined': false
12
+ };
13
13
 
14
- var root = (objectTypes[typeof window] && window) || this,
15
- freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports,
16
- freeModule = objectTypes[typeof module] && module && !module.nodeType && module,
17
- moduleExports = freeModule && freeModule.exports === freeExports && freeExports,
18
- freeGlobal = objectTypes[typeof global] && global;
19
-
20
- if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {
21
- root = freeGlobal;
22
- }
14
+ var root = (objectTypes[typeof window] && window) || this,
15
+ freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports,
16
+ freeModule = objectTypes[typeof module] && module && !module.nodeType && module,
17
+ moduleExports = freeModule && freeModule.exports === freeExports && freeExports,
18
+ freeGlobal = objectTypes[typeof global] && global;
19
+
20
+ if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {
21
+ root = freeGlobal;
22
+ }
23
23
 
24
- var Rx = { internals: {}, config: {} };
24
+ var Rx = {
25
+ internals: {},
26
+ config: {
27
+ Promise: root.Promise // Detect if promise exists
28
+ }
29
+ };
25
30
 
26
31
  // Defaults
27
32
  function noop() { }
@@ -502,100 +507,100 @@
502
507
  };
503
508
  }
504
509
 
505
- // Collections
506
- var IndexedItem = function (id, value) {
507
- this.id = id;
508
- this.value = value;
509
- };
510
-
511
- IndexedItem.prototype.compareTo = function (other) {
512
- var c = this.value.compareTo(other.value);
513
- if (c === 0) {
514
- c = this.id - other.id;
515
- }
516
- return c;
517
- };
518
-
519
- // Priority Queue for Scheduling
520
- var PriorityQueue = Rx.internals.PriorityQueue = function (capacity) {
521
- this.items = new Array(capacity);
522
- this.length = 0;
523
- };
524
-
525
- var priorityProto = PriorityQueue.prototype;
526
- priorityProto.isHigherPriority = function (left, right) {
527
- return this.items[left].compareTo(this.items[right]) < 0;
528
- };
529
-
530
- priorityProto.percolate = function (index) {
531
- if (index >= this.length || index < 0) {
532
- return;
533
- }
534
- var parent = index - 1 >> 1;
535
- if (parent < 0 || parent === index) {
536
- return;
537
- }
538
- if (this.isHigherPriority(index, parent)) {
539
- var temp = this.items[index];
540
- this.items[index] = this.items[parent];
541
- this.items[parent] = temp;
542
- this.percolate(parent);
543
- }
544
- };
545
-
546
- priorityProto.heapify = function (index) {
547
- if (index === undefined) {
548
- index = 0;
549
- }
550
- if (index >= this.length || index < 0) {
551
- return;
552
- }
553
- var left = 2 * index + 1,
554
- right = 2 * index + 2,
555
- first = index;
556
- if (left < this.length && this.isHigherPriority(left, first)) {
557
- first = left;
558
- }
559
- if (right < this.length && this.isHigherPriority(right, first)) {
560
- first = right;
561
- }
562
- if (first !== index) {
563
- var temp = this.items[index];
564
- this.items[index] = this.items[first];
565
- this.items[first] = temp;
566
- this.heapify(first);
567
- }
568
- };
569
-
570
- priorityProto.peek = function () { return this.items[0].value; };
571
-
572
- priorityProto.removeAt = function (index) {
573
- this.items[index] = this.items[--this.length];
574
- delete this.items[this.length];
575
- this.heapify();
576
- };
577
-
578
- priorityProto.dequeue = function () {
579
- var result = this.peek();
580
- this.removeAt(0);
581
- return result;
582
- };
583
-
584
- priorityProto.enqueue = function (item) {
585
- var index = this.length++;
586
- this.items[index] = new IndexedItem(PriorityQueue.count++, item);
587
- this.percolate(index);
588
- };
589
-
590
- priorityProto.remove = function (item) {
591
- for (var i = 0; i < this.length; i++) {
592
- if (this.items[i].value === item) {
593
- this.removeAt(i);
594
- return true;
595
- }
596
- }
597
- return false;
598
- };
510
+ // Collections
511
+ var IndexedItem = function (id, value) {
512
+ this.id = id;
513
+ this.value = value;
514
+ };
515
+
516
+ IndexedItem.prototype.compareTo = function (other) {
517
+ var c = this.value.compareTo(other.value);
518
+ if (c === 0) {
519
+ c = this.id - other.id;
520
+ }
521
+ return c;
522
+ };
523
+
524
+ // Priority Queue for Scheduling
525
+ var PriorityQueue = Rx.internals.PriorityQueue = function (capacity) {
526
+ this.items = new Array(capacity);
527
+ this.length = 0;
528
+ };
529
+
530
+ var priorityProto = PriorityQueue.prototype;
531
+ priorityProto.isHigherPriority = function (left, right) {
532
+ return this.items[left].compareTo(this.items[right]) < 0;
533
+ };
534
+
535
+ priorityProto.percolate = function (index) {
536
+ if (index >= this.length || index < 0) {
537
+ return;
538
+ }
539
+ var parent = index - 1 >> 1;
540
+ if (parent < 0 || parent === index) {
541
+ return;
542
+ }
543
+ if (this.isHigherPriority(index, parent)) {
544
+ var temp = this.items[index];
545
+ this.items[index] = this.items[parent];
546
+ this.items[parent] = temp;
547
+ this.percolate(parent);
548
+ }
549
+ };
550
+
551
+ priorityProto.heapify = function (index) {
552
+ if (index === undefined) {
553
+ index = 0;
554
+ }
555
+ if (index >= this.length || index < 0) {
556
+ return;
557
+ }
558
+ var left = 2 * index + 1,
559
+ right = 2 * index + 2,
560
+ first = index;
561
+ if (left < this.length && this.isHigherPriority(left, first)) {
562
+ first = left;
563
+ }
564
+ if (right < this.length && this.isHigherPriority(right, first)) {
565
+ first = right;
566
+ }
567
+ if (first !== index) {
568
+ var temp = this.items[index];
569
+ this.items[index] = this.items[first];
570
+ this.items[first] = temp;
571
+ this.heapify(first);
572
+ }
573
+ };
574
+
575
+ priorityProto.peek = function () { return this.items[0].value; };
576
+
577
+ priorityProto.removeAt = function (index) {
578
+ this.items[index] = this.items[--this.length];
579
+ delete this.items[this.length];
580
+ this.heapify();
581
+ };
582
+
583
+ priorityProto.dequeue = function () {
584
+ var result = this.peek();
585
+ this.removeAt(0);
586
+ return result;
587
+ };
588
+
589
+ priorityProto.enqueue = function (item) {
590
+ var index = this.length++;
591
+ this.items[index] = new IndexedItem(PriorityQueue.count++, item);
592
+ this.percolate(index);
593
+ };
594
+
595
+ priorityProto.remove = function (item) {
596
+ for (var i = 0; i < this.length; i++) {
597
+ if (this.items[i].value === item) {
598
+ this.removeAt(i);
599
+ return true;
600
+ }
601
+ }
602
+ return false;
603
+ };
599
604
  PriorityQueue.count = 0;
600
605
  /**
601
606
  * Represents a group of disposable resources that are disposed together.
@@ -864,30 +869,30 @@
864
869
  return RefCountDisposable;
865
870
  })();
866
871
 
867
- var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
868
- this.scheduler = scheduler;
869
- this.state = state;
870
- this.action = action;
871
- this.dueTime = dueTime;
872
- this.comparer = comparer || defaultSubComparer;
873
- this.disposable = new SingleAssignmentDisposable();
874
- }
875
-
876
- ScheduledItem.prototype.invoke = function () {
877
- this.disposable.setDisposable(this.invokeCore());
878
- };
879
-
880
- ScheduledItem.prototype.compareTo = function (other) {
881
- return this.comparer(this.dueTime, other.dueTime);
882
- };
883
-
884
- ScheduledItem.prototype.isCancelled = function () {
885
- return this.disposable.isDisposed;
886
- };
887
-
888
- ScheduledItem.prototype.invokeCore = function () {
889
- return this.action(this.scheduler, this.state);
890
- };
872
+ var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
873
+ this.scheduler = scheduler;
874
+ this.state = state;
875
+ this.action = action;
876
+ this.dueTime = dueTime;
877
+ this.comparer = comparer || defaultSubComparer;
878
+ this.disposable = new SingleAssignmentDisposable();
879
+ }
880
+
881
+ ScheduledItem.prototype.invoke = function () {
882
+ this.disposable.setDisposable(this.invokeCore());
883
+ };
884
+
885
+ ScheduledItem.prototype.compareTo = function (other) {
886
+ return this.comparer(this.dueTime, other.dueTime);
887
+ };
888
+
889
+ ScheduledItem.prototype.isCancelled = function () {
890
+ return this.disposable.isDisposed;
891
+ };
892
+
893
+ ScheduledItem.prototype.invokeCore = function () {
894
+ return this.action(this.scheduler, this.state);
895
+ };
891
896
 
892
897
  /** Provides a set of static properties to access commonly used schedulers. */
893
898
  var Scheduler = Rx.Scheduler = (function () {
@@ -1142,25 +1147,25 @@
1142
1147
 
1143
1148
  var normalizeTime = Scheduler.normalize;
1144
1149
 
1145
- /**
1146
- * Gets a scheduler that schedules work immediately on the current thread.
1147
- */
1148
- var immediateScheduler = Scheduler.immediate = (function () {
1149
-
1150
- function scheduleNow(state, action) { return action(this, state); }
1151
-
1152
- function scheduleRelative(state, dueTime, action) {
1153
- var dt = normalizeTime(dt);
1154
- while (dt - this.now() > 0) { }
1155
- return action(this, state);
1156
- }
1157
-
1158
- function scheduleAbsolute(state, dueTime, action) {
1159
- return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
1160
- }
1161
-
1162
- return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
1163
- }());
1150
+ /**
1151
+ * Gets a scheduler that schedules work immediately on the current thread.
1152
+ */
1153
+ var immediateScheduler = Scheduler.immediate = (function () {
1154
+
1155
+ function scheduleNow(state, action) { return action(this, state); }
1156
+
1157
+ function scheduleRelative(state, dueTime, action) {
1158
+ var dt = normalizeTime(dt);
1159
+ while (dt - this.now() > 0) { }
1160
+ return action(this, state);
1161
+ }
1162
+
1163
+ function scheduleAbsolute(state, dueTime, action) {
1164
+ return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
1165
+ }
1166
+
1167
+ return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
1168
+ }());
1164
1169
 
1165
1170
  /**
1166
1171
  * Gets a scheduler that schedules work as soon as possible on the current thread.
@@ -1224,34 +1229,34 @@
1224
1229
  return currentScheduler;
1225
1230
  }());
1226
1231
 
1227
- var SchedulePeriodicRecursive = Rx.internals.SchedulePeriodicRecursive = (function () {
1228
- function tick(command, recurse) {
1229
- recurse(0, this._period);
1230
- try {
1231
- this._state = this._action(this._state);
1232
- } catch (e) {
1233
- this._cancel.dispose();
1234
- throw e;
1235
- }
1236
- }
1237
-
1238
- function SchedulePeriodicRecursive(scheduler, state, period, action) {
1239
- this._scheduler = scheduler;
1240
- this._state = state;
1241
- this._period = period;
1242
- this._action = action;
1243
- }
1244
-
1245
- SchedulePeriodicRecursive.prototype.start = function () {
1246
- var d = new SingleAssignmentDisposable();
1247
- this._cancel = d;
1248
- d.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0, this._period, tick.bind(this)));
1249
-
1250
- return d;
1251
- };
1252
-
1253
- return SchedulePeriodicRecursive;
1254
- }());
1232
+ var SchedulePeriodicRecursive = Rx.internals.SchedulePeriodicRecursive = (function () {
1233
+ function tick(command, recurse) {
1234
+ recurse(0, this._period);
1235
+ try {
1236
+ this._state = this._action(this._state);
1237
+ } catch (e) {
1238
+ this._cancel.dispose();
1239
+ throw e;
1240
+ }
1241
+ }
1242
+
1243
+ function SchedulePeriodicRecursive(scheduler, state, period, action) {
1244
+ this._scheduler = scheduler;
1245
+ this._state = state;
1246
+ this._period = period;
1247
+ this._action = action;
1248
+ }
1249
+
1250
+ SchedulePeriodicRecursive.prototype.start = function () {
1251
+ var d = new SingleAssignmentDisposable();
1252
+ this._cancel = d;
1253
+ d.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0, this._period, tick.bind(this)));
1254
+
1255
+ return d;
1256
+ };
1257
+
1258
+ return SchedulePeriodicRecursive;
1259
+ }());
1255
1260
 
1256
1261
 
1257
1262
  var scheduleMethod, clearMethod = noop;
@@ -1526,143 +1531,143 @@
1526
1531
  };
1527
1532
  }());
1528
1533
 
1529
- var Enumerator = Rx.internals.Enumerator = function (next) {
1530
- this._next = next;
1531
- };
1532
-
1533
- Enumerator.prototype.next = function () {
1534
- return this._next();
1535
- };
1536
-
1537
- Enumerator.prototype[$iterator$] = function () { return this; }
1538
-
1539
- var Enumerable = Rx.internals.Enumerable = function (iterator) {
1540
- this._iterator = iterator;
1541
- };
1542
-
1543
- Enumerable.prototype[$iterator$] = function () {
1544
- return this._iterator();
1545
- };
1546
-
1547
- Enumerable.prototype.concat = function () {
1548
- var sources = this;
1549
- return new AnonymousObservable(function (observer) {
1550
- var e;
1551
- try {
1552
- e = sources[$iterator$]();
1553
- } catch(err) {
1554
- observer.onError();
1555
- return;
1556
- }
1557
-
1558
- var isDisposed,
1559
- subscription = new SerialDisposable();
1560
- var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1561
- var currentItem;
1562
- if (isDisposed) { return; }
1563
-
1564
- try {
1565
- currentItem = e.next();
1566
- } catch (ex) {
1567
- observer.onError(ex);
1568
- return;
1569
- }
1570
-
1571
- if (currentItem.done) {
1572
- observer.onCompleted();
1573
- return;
1574
- }
1575
-
1576
- var d = new SingleAssignmentDisposable();
1577
- subscription.setDisposable(d);
1578
- d.setDisposable(currentItem.value.subscribe(
1579
- observer.onNext.bind(observer),
1580
- observer.onError.bind(observer),
1581
- function () { self(); })
1582
- );
1583
- });
1584
-
1585
- return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1586
- isDisposed = true;
1587
- }));
1588
- });
1589
- };
1590
-
1591
- Enumerable.prototype.catchException = function () {
1592
- var sources = this;
1593
- return new AnonymousObservable(function (observer) {
1594
- var e;
1595
- try {
1596
- e = sources[$iterator$]();
1597
- } catch(err) {
1598
- observer.onError();
1599
- return;
1600
- }
1601
-
1602
- var isDisposed,
1603
- lastException,
1604
- subscription = new SerialDisposable();
1605
- var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1606
- if (isDisposed) { return; }
1607
-
1608
- var currentItem;
1609
- try {
1610
- currentItem = e.next();
1611
- } catch (ex) {
1612
- observer.onError(ex);
1613
- return;
1614
- }
1615
-
1616
- if (currentItem.done) {
1617
- if (lastException) {
1618
- observer.onError(lastException);
1619
- } else {
1620
- observer.onCompleted();
1621
- }
1622
- return;
1623
- }
1624
-
1625
- var d = new SingleAssignmentDisposable();
1626
- subscription.setDisposable(d);
1627
- d.setDisposable(currentItem.value.subscribe(
1628
- observer.onNext.bind(observer),
1629
- function (exn) {
1630
- lastException = exn;
1631
- self();
1632
- },
1633
- observer.onCompleted.bind(observer)));
1634
- });
1635
- return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1636
- isDisposed = true;
1637
- }));
1638
- });
1639
- };
1640
-
1641
-
1642
- var enumerableRepeat = Enumerable.repeat = function (value, repeatCount) {
1643
- if (repeatCount == null) { repeatCount = -1; }
1644
- return new Enumerable(function () {
1645
- var left = repeatCount;
1646
- return new Enumerator(function () {
1647
- if (left === 0) { return doneEnumerator; }
1648
- if (left > 0) { left--; }
1649
- return { done: false, value: value };
1650
- });
1651
- });
1652
- };
1653
-
1654
- var enumerableFor = Enumerable.forEach = function (source, selector, thisArg) {
1655
- selector || (selector = identity);
1656
- return new Enumerable(function () {
1657
- var index = -1;
1658
- return new Enumerator(
1659
- function () {
1660
- return ++index < source.length ?
1661
- { done: false, value: selector.call(thisArg, source[index], index, source) } :
1662
- doneEnumerator;
1663
- });
1664
- });
1665
- };
1534
+ var Enumerator = Rx.internals.Enumerator = function (next) {
1535
+ this._next = next;
1536
+ };
1537
+
1538
+ Enumerator.prototype.next = function () {
1539
+ return this._next();
1540
+ };
1541
+
1542
+ Enumerator.prototype[$iterator$] = function () { return this; }
1543
+
1544
+ var Enumerable = Rx.internals.Enumerable = function (iterator) {
1545
+ this._iterator = iterator;
1546
+ };
1547
+
1548
+ Enumerable.prototype[$iterator$] = function () {
1549
+ return this._iterator();
1550
+ };
1551
+
1552
+ Enumerable.prototype.concat = function () {
1553
+ var sources = this;
1554
+ return new AnonymousObservable(function (observer) {
1555
+ var e;
1556
+ try {
1557
+ e = sources[$iterator$]();
1558
+ } catch(err) {
1559
+ observer.onError();
1560
+ return;
1561
+ }
1562
+
1563
+ var isDisposed,
1564
+ subscription = new SerialDisposable();
1565
+ var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1566
+ var currentItem;
1567
+ if (isDisposed) { return; }
1568
+
1569
+ try {
1570
+ currentItem = e.next();
1571
+ } catch (ex) {
1572
+ observer.onError(ex);
1573
+ return;
1574
+ }
1575
+
1576
+ if (currentItem.done) {
1577
+ observer.onCompleted();
1578
+ return;
1579
+ }
1580
+
1581
+ var d = new SingleAssignmentDisposable();
1582
+ subscription.setDisposable(d);
1583
+ d.setDisposable(currentItem.value.subscribe(
1584
+ observer.onNext.bind(observer),
1585
+ observer.onError.bind(observer),
1586
+ function () { self(); })
1587
+ );
1588
+ });
1589
+
1590
+ return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1591
+ isDisposed = true;
1592
+ }));
1593
+ });
1594
+ };
1595
+
1596
+ Enumerable.prototype.catchException = function () {
1597
+ var sources = this;
1598
+ return new AnonymousObservable(function (observer) {
1599
+ var e;
1600
+ try {
1601
+ e = sources[$iterator$]();
1602
+ } catch(err) {
1603
+ observer.onError();
1604
+ return;
1605
+ }
1606
+
1607
+ var isDisposed,
1608
+ lastException,
1609
+ subscription = new SerialDisposable();
1610
+ var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1611
+ if (isDisposed) { return; }
1612
+
1613
+ var currentItem;
1614
+ try {
1615
+ currentItem = e.next();
1616
+ } catch (ex) {
1617
+ observer.onError(ex);
1618
+ return;
1619
+ }
1620
+
1621
+ if (currentItem.done) {
1622
+ if (lastException) {
1623
+ observer.onError(lastException);
1624
+ } else {
1625
+ observer.onCompleted();
1626
+ }
1627
+ return;
1628
+ }
1629
+
1630
+ var d = new SingleAssignmentDisposable();
1631
+ subscription.setDisposable(d);
1632
+ d.setDisposable(currentItem.value.subscribe(
1633
+ observer.onNext.bind(observer),
1634
+ function (exn) {
1635
+ lastException = exn;
1636
+ self();
1637
+ },
1638
+ observer.onCompleted.bind(observer)));
1639
+ });
1640
+ return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1641
+ isDisposed = true;
1642
+ }));
1643
+ });
1644
+ };
1645
+
1646
+
1647
+ var enumerableRepeat = Enumerable.repeat = function (value, repeatCount) {
1648
+ if (repeatCount == null) { repeatCount = -1; }
1649
+ return new Enumerable(function () {
1650
+ var left = repeatCount;
1651
+ return new Enumerator(function () {
1652
+ if (left === 0) { return doneEnumerator; }
1653
+ if (left > 0) { left--; }
1654
+ return { done: false, value: value };
1655
+ });
1656
+ });
1657
+ };
1658
+
1659
+ var enumerableFor = Enumerable.forEach = function (source, selector, thisArg) {
1660
+ selector || (selector = identity);
1661
+ return new Enumerable(function () {
1662
+ var index = -1;
1663
+ return new Enumerator(
1664
+ function () {
1665
+ return ++index < source.length ?
1666
+ { done: false, value: selector.call(thisArg, source[index], index, source) } :
1667
+ doneEnumerator;
1668
+ });
1669
+ });
1670
+ };
1666
1671
 
1667
1672
  /**
1668
1673
  * Supports push-style iteration over an observable sequence.
@@ -3811,71 +3816,71 @@
3811
3816
  return this.replay(null, bufferSize, window, scheduler).refCount();
3812
3817
  };
3813
3818
 
3814
- /** @private */
3815
- var ConnectableObservable = Rx.ConnectableObservable = (function (_super) {
3816
- inherits(ConnectableObservable, _super);
3817
-
3818
- /**
3819
- * @constructor
3820
- * @private
3821
- */
3822
- function ConnectableObservable(source, subject) {
3823
- var state = {
3824
- subject: subject,
3825
- source: source.asObservable(),
3826
- hasSubscription: false,
3827
- subscription: null
3828
- };
3829
-
3830
- this.connect = function () {
3831
- if (!state.hasSubscription) {
3832
- state.hasSubscription = true;
3833
- state.subscription = new CompositeDisposable(state.source.subscribe(state.subject), disposableCreate(function () {
3834
- state.hasSubscription = false;
3835
- }));
3836
- }
3837
- return state.subscription;
3838
- };
3839
-
3840
- function subscribe(observer) {
3841
- return state.subject.subscribe(observer);
3842
- }
3843
-
3844
- _super.call(this, subscribe);
3845
- }
3846
-
3847
- /**
3848
- * @private
3849
- * @memberOf ConnectableObservable
3850
- */
3851
- ConnectableObservable.prototype.connect = function () { return this.connect(); };
3852
-
3853
- /**
3854
- * @private
3855
- * @memberOf ConnectableObservable
3856
- */
3857
- ConnectableObservable.prototype.refCount = function () {
3858
- var connectableSubscription = null, count = 0, source = this;
3859
- return new AnonymousObservable(function (observer) {
3860
- var shouldConnect, subscription;
3861
- count++;
3862
- shouldConnect = count === 1;
3863
- subscription = source.subscribe(observer);
3864
- if (shouldConnect) {
3865
- connectableSubscription = source.connect();
3866
- }
3867
- return disposableCreate(function () {
3868
- subscription.dispose();
3869
- count--;
3870
- if (count === 0) {
3871
- connectableSubscription.dispose();
3872
- }
3873
- });
3874
- });
3875
- };
3876
-
3877
- return ConnectableObservable;
3878
- }(Observable));
3819
+ /** @private */
3820
+ var ConnectableObservable = Rx.ConnectableObservable = (function (_super) {
3821
+ inherits(ConnectableObservable, _super);
3822
+
3823
+ /**
3824
+ * @constructor
3825
+ * @private
3826
+ */
3827
+ function ConnectableObservable(source, subject) {
3828
+ var state = {
3829
+ subject: subject,
3830
+ source: source.asObservable(),
3831
+ hasSubscription: false,
3832
+ subscription: null
3833
+ };
3834
+
3835
+ this.connect = function () {
3836
+ if (!state.hasSubscription) {
3837
+ state.hasSubscription = true;
3838
+ state.subscription = new CompositeDisposable(state.source.subscribe(state.subject), disposableCreate(function () {
3839
+ state.hasSubscription = false;
3840
+ }));
3841
+ }
3842
+ return state.subscription;
3843
+ };
3844
+
3845
+ function subscribe(observer) {
3846
+ return state.subject.subscribe(observer);
3847
+ }
3848
+
3849
+ _super.call(this, subscribe);
3850
+ }
3851
+
3852
+ /**
3853
+ * @private
3854
+ * @memberOf ConnectableObservable
3855
+ */
3856
+ ConnectableObservable.prototype.connect = function () { return this.connect(); };
3857
+
3858
+ /**
3859
+ * @private
3860
+ * @memberOf ConnectableObservable
3861
+ */
3862
+ ConnectableObservable.prototype.refCount = function () {
3863
+ var connectableSubscription = null, count = 0, source = this;
3864
+ return new AnonymousObservable(function (observer) {
3865
+ var shouldConnect, subscription;
3866
+ count++;
3867
+ shouldConnect = count === 1;
3868
+ subscription = source.subscribe(observer);
3869
+ if (shouldConnect) {
3870
+ connectableSubscription = source.connect();
3871
+ }
3872
+ return disposableCreate(function () {
3873
+ subscription.dispose();
3874
+ count--;
3875
+ if (count === 0) {
3876
+ connectableSubscription.dispose();
3877
+ }
3878
+ });
3879
+ });
3880
+ };
3881
+
3882
+ return ConnectableObservable;
3883
+ }(Observable));
3879
3884
 
3880
3885
  function observableTimerTimeSpan(dueTime, scheduler) {
3881
3886
  var d = normalizeTime(dueTime);
@@ -4222,7 +4227,7 @@
4222
4227
  * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used.
4223
4228
  * @returns {Observable} The generated sequence.
4224
4229
  */
4225
- Observable.generateWithTime = function (initialState, condition, iterate, resultSelector, timeSelector, scheduler) {
4230
+ Observable.generateWithRelativeTime = function (initialState, condition, iterate, resultSelector, timeSelector, scheduler) {
4226
4231
  scheduler || (scheduler = timeoutScheduler);
4227
4232
  return new AnonymousObservable(function (observer) {
4228
4233
  var first = true,
@@ -5061,23 +5066,23 @@
5061
5066
  return AutoDetachObserver;
5062
5067
  }(AbstractObserver));
5063
5068
 
5064
- /** @private */
5065
- var InnerSubscription = function (subject, observer) {
5066
- this.subject = subject;
5067
- this.observer = observer;
5068
- };
5069
-
5070
- /**
5071
- * @private
5072
- * @memberOf InnerSubscription
5073
- */
5074
- InnerSubscription.prototype.dispose = function () {
5075
- if (!this.subject.isDisposed && this.observer !== null) {
5076
- var idx = this.subject.observers.indexOf(this.observer);
5077
- this.subject.observers.splice(idx, 1);
5078
- this.observer = null;
5079
- }
5080
- };
5069
+ /** @private */
5070
+ var InnerSubscription = function (subject, observer) {
5071
+ this.subject = subject;
5072
+ this.observer = observer;
5073
+ };
5074
+
5075
+ /**
5076
+ * @private
5077
+ * @memberOf InnerSubscription
5078
+ */
5079
+ InnerSubscription.prototype.dispose = function () {
5080
+ if (!this.subject.isDisposed && this.observer !== null) {
5081
+ var idx = this.subject.observers.indexOf(this.observer);
5082
+ this.subject.observers.splice(idx, 1);
5083
+ this.observer = null;
5084
+ }
5085
+ };
5081
5086
 
5082
5087
  /**
5083
5088
  * Represents an object that is both an observable sequence as well as an observer.
@@ -5312,50 +5317,50 @@
5312
5317
  return AsyncSubject;
5313
5318
  }(Observable));
5314
5319
 
5315
- /** @private */
5316
- var AnonymousSubject = (function (_super) {
5317
- inherits(AnonymousSubject, _super);
5318
-
5319
- function subscribe(observer) {
5320
- return this.observable.subscribe(observer);
5321
- }
5322
-
5323
- /**
5324
- * @private
5325
- * @constructor
5326
- */
5327
- function AnonymousSubject(observer, observable) {
5328
- _super.call(this, subscribe);
5329
- this.observer = observer;
5330
- this.observable = observable;
5331
- }
5332
-
5333
- addProperties(AnonymousSubject.prototype, Observer, {
5334
- /**
5335
- * @private
5336
- * @memberOf AnonymousSubject#
5337
- */
5338
- onCompleted: function () {
5339
- this.observer.onCompleted();
5340
- },
5341
- /**
5342
- * @private
5343
- * @memberOf AnonymousSubject#
5344
- */
5345
- onError: function (exception) {
5346
- this.observer.onError(exception);
5347
- },
5348
- /**
5349
- * @private
5350
- * @memberOf AnonymousSubject#
5351
- */
5352
- onNext: function (value) {
5353
- this.observer.onNext(value);
5354
- }
5355
- });
5356
-
5357
- return AnonymousSubject;
5358
- }(Observable));
5320
+ /** @private */
5321
+ var AnonymousSubject = (function (_super) {
5322
+ inherits(AnonymousSubject, _super);
5323
+
5324
+ function subscribe(observer) {
5325
+ return this.observable.subscribe(observer);
5326
+ }
5327
+
5328
+ /**
5329
+ * @private
5330
+ * @constructor
5331
+ */
5332
+ function AnonymousSubject(observer, observable) {
5333
+ _super.call(this, subscribe);
5334
+ this.observer = observer;
5335
+ this.observable = observable;
5336
+ }
5337
+
5338
+ addProperties(AnonymousSubject.prototype, Observer, {
5339
+ /**
5340
+ * @private
5341
+ * @memberOf AnonymousSubject#
5342
+ */
5343
+ onCompleted: function () {
5344
+ this.observer.onCompleted();
5345
+ },
5346
+ /**
5347
+ * @private
5348
+ * @memberOf AnonymousSubject#
5349
+ */
5350
+ onError: function (exception) {
5351
+ this.observer.onError(exception);
5352
+ },
5353
+ /**
5354
+ * @private
5355
+ * @memberOf AnonymousSubject#
5356
+ */
5357
+ onNext: function (value) {
5358
+ this.observer.onNext(value);
5359
+ }
5360
+ });
5361
+
5362
+ return AnonymousSubject;
5363
+ }(Observable));
5359
5364
 
5360
5365
  /**
5361
5366
  * Represents a value that changes over time.
@@ -5619,21 +5624,21 @@
5619
5624
  return ReplaySubject;
5620
5625
  }(Observable));
5621
5626
 
5622
- if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
5623
- root.Rx = Rx;
5624
-
5625
- define(function() {
5626
- return Rx;
5627
- });
5628
- } else if (freeExports && freeModule) {
5629
- // in Node.js or RingoJS
5630
- if (moduleExports) {
5631
- (freeModule.exports = Rx).Rx = Rx;
5632
- } else {
5633
- freeExports.Rx = Rx;
5634
- }
5635
- } else {
5636
- // in a browser or Rhino
5637
- root.Rx = Rx;
5627
+ if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
5628
+ root.Rx = Rx;
5629
+
5630
+ define(function() {
5631
+ return Rx;
5632
+ });
5633
+ } else if (freeExports && freeModule) {
5634
+ // in Node.js or RingoJS
5635
+ if (moduleExports) {
5636
+ (freeModule.exports = Rx).Rx = Rx;
5637
+ } else {
5638
+ freeExports.Rx = Rx;
5639
+ }
5640
+ } else {
5641
+ // in a browser or Rhino
5642
+ root.Rx = Rx;
5638
5643
  }
5639
5644
  }.call(this));