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() { }
@@ -384,100 +389,100 @@
384
389
  return a;
385
390
  }
386
391
 
387
- // Collections
388
- var IndexedItem = function (id, value) {
389
- this.id = id;
390
- this.value = value;
391
- };
392
-
393
- IndexedItem.prototype.compareTo = function (other) {
394
- var c = this.value.compareTo(other.value);
395
- if (c === 0) {
396
- c = this.id - other.id;
397
- }
398
- return c;
399
- };
400
-
401
- // Priority Queue for Scheduling
402
- var PriorityQueue = Rx.internals.PriorityQueue = function (capacity) {
403
- this.items = new Array(capacity);
404
- this.length = 0;
405
- };
406
-
407
- var priorityProto = PriorityQueue.prototype;
408
- priorityProto.isHigherPriority = function (left, right) {
409
- return this.items[left].compareTo(this.items[right]) < 0;
410
- };
411
-
412
- priorityProto.percolate = function (index) {
413
- if (index >= this.length || index < 0) {
414
- return;
415
- }
416
- var parent = index - 1 >> 1;
417
- if (parent < 0 || parent === index) {
418
- return;
419
- }
420
- if (this.isHigherPriority(index, parent)) {
421
- var temp = this.items[index];
422
- this.items[index] = this.items[parent];
423
- this.items[parent] = temp;
424
- this.percolate(parent);
425
- }
426
- };
427
-
428
- priorityProto.heapify = function (index) {
429
- if (index === undefined) {
430
- index = 0;
431
- }
432
- if (index >= this.length || index < 0) {
433
- return;
434
- }
435
- var left = 2 * index + 1,
436
- right = 2 * index + 2,
437
- first = index;
438
- if (left < this.length && this.isHigherPriority(left, first)) {
439
- first = left;
440
- }
441
- if (right < this.length && this.isHigherPriority(right, first)) {
442
- first = right;
443
- }
444
- if (first !== index) {
445
- var temp = this.items[index];
446
- this.items[index] = this.items[first];
447
- this.items[first] = temp;
448
- this.heapify(first);
449
- }
450
- };
451
-
452
- priorityProto.peek = function () { return this.items[0].value; };
453
-
454
- priorityProto.removeAt = function (index) {
455
- this.items[index] = this.items[--this.length];
456
- delete this.items[this.length];
457
- this.heapify();
458
- };
459
-
460
- priorityProto.dequeue = function () {
461
- var result = this.peek();
462
- this.removeAt(0);
463
- return result;
464
- };
465
-
466
- priorityProto.enqueue = function (item) {
467
- var index = this.length++;
468
- this.items[index] = new IndexedItem(PriorityQueue.count++, item);
469
- this.percolate(index);
470
- };
471
-
472
- priorityProto.remove = function (item) {
473
- for (var i = 0; i < this.length; i++) {
474
- if (this.items[i].value === item) {
475
- this.removeAt(i);
476
- return true;
477
- }
478
- }
479
- return false;
480
- };
392
+ // Collections
393
+ var IndexedItem = function (id, value) {
394
+ this.id = id;
395
+ this.value = value;
396
+ };
397
+
398
+ IndexedItem.prototype.compareTo = function (other) {
399
+ var c = this.value.compareTo(other.value);
400
+ if (c === 0) {
401
+ c = this.id - other.id;
402
+ }
403
+ return c;
404
+ };
405
+
406
+ // Priority Queue for Scheduling
407
+ var PriorityQueue = Rx.internals.PriorityQueue = function (capacity) {
408
+ this.items = new Array(capacity);
409
+ this.length = 0;
410
+ };
411
+
412
+ var priorityProto = PriorityQueue.prototype;
413
+ priorityProto.isHigherPriority = function (left, right) {
414
+ return this.items[left].compareTo(this.items[right]) < 0;
415
+ };
416
+
417
+ priorityProto.percolate = function (index) {
418
+ if (index >= this.length || index < 0) {
419
+ return;
420
+ }
421
+ var parent = index - 1 >> 1;
422
+ if (parent < 0 || parent === index) {
423
+ return;
424
+ }
425
+ if (this.isHigherPriority(index, parent)) {
426
+ var temp = this.items[index];
427
+ this.items[index] = this.items[parent];
428
+ this.items[parent] = temp;
429
+ this.percolate(parent);
430
+ }
431
+ };
432
+
433
+ priorityProto.heapify = function (index) {
434
+ if (index === undefined) {
435
+ index = 0;
436
+ }
437
+ if (index >= this.length || index < 0) {
438
+ return;
439
+ }
440
+ var left = 2 * index + 1,
441
+ right = 2 * index + 2,
442
+ first = index;
443
+ if (left < this.length && this.isHigherPriority(left, first)) {
444
+ first = left;
445
+ }
446
+ if (right < this.length && this.isHigherPriority(right, first)) {
447
+ first = right;
448
+ }
449
+ if (first !== index) {
450
+ var temp = this.items[index];
451
+ this.items[index] = this.items[first];
452
+ this.items[first] = temp;
453
+ this.heapify(first);
454
+ }
455
+ };
456
+
457
+ priorityProto.peek = function () { return this.items[0].value; };
458
+
459
+ priorityProto.removeAt = function (index) {
460
+ this.items[index] = this.items[--this.length];
461
+ delete this.items[this.length];
462
+ this.heapify();
463
+ };
464
+
465
+ priorityProto.dequeue = function () {
466
+ var result = this.peek();
467
+ this.removeAt(0);
468
+ return result;
469
+ };
470
+
471
+ priorityProto.enqueue = function (item) {
472
+ var index = this.length++;
473
+ this.items[index] = new IndexedItem(PriorityQueue.count++, item);
474
+ this.percolate(index);
475
+ };
476
+
477
+ priorityProto.remove = function (item) {
478
+ for (var i = 0; i < this.length; i++) {
479
+ if (this.items[i].value === item) {
480
+ this.removeAt(i);
481
+ return true;
482
+ }
483
+ }
484
+ return false;
485
+ };
481
486
  PriorityQueue.count = 0;
482
487
  /**
483
488
  * Represents a group of disposable resources that are disposed together.
@@ -746,30 +751,30 @@
746
751
  return RefCountDisposable;
747
752
  })();
748
753
 
749
- var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
750
- this.scheduler = scheduler;
751
- this.state = state;
752
- this.action = action;
753
- this.dueTime = dueTime;
754
- this.comparer = comparer || defaultSubComparer;
755
- this.disposable = new SingleAssignmentDisposable();
756
- }
757
-
758
- ScheduledItem.prototype.invoke = function () {
759
- this.disposable.setDisposable(this.invokeCore());
760
- };
761
-
762
- ScheduledItem.prototype.compareTo = function (other) {
763
- return this.comparer(this.dueTime, other.dueTime);
764
- };
765
-
766
- ScheduledItem.prototype.isCancelled = function () {
767
- return this.disposable.isDisposed;
768
- };
769
-
770
- ScheduledItem.prototype.invokeCore = function () {
771
- return this.action(this.scheduler, this.state);
772
- };
754
+ var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
755
+ this.scheduler = scheduler;
756
+ this.state = state;
757
+ this.action = action;
758
+ this.dueTime = dueTime;
759
+ this.comparer = comparer || defaultSubComparer;
760
+ this.disposable = new SingleAssignmentDisposable();
761
+ }
762
+
763
+ ScheduledItem.prototype.invoke = function () {
764
+ this.disposable.setDisposable(this.invokeCore());
765
+ };
766
+
767
+ ScheduledItem.prototype.compareTo = function (other) {
768
+ return this.comparer(this.dueTime, other.dueTime);
769
+ };
770
+
771
+ ScheduledItem.prototype.isCancelled = function () {
772
+ return this.disposable.isDisposed;
773
+ };
774
+
775
+ ScheduledItem.prototype.invokeCore = function () {
776
+ return this.action(this.scheduler, this.state);
777
+ };
773
778
 
774
779
  /** Provides a set of static properties to access commonly used schedulers. */
775
780
  var Scheduler = Rx.Scheduler = (function () {
@@ -1024,25 +1029,25 @@
1024
1029
 
1025
1030
  var normalizeTime = Scheduler.normalize;
1026
1031
 
1027
- /**
1028
- * Gets a scheduler that schedules work immediately on the current thread.
1029
- */
1030
- var immediateScheduler = Scheduler.immediate = (function () {
1031
-
1032
- function scheduleNow(state, action) { return action(this, state); }
1033
-
1034
- function scheduleRelative(state, dueTime, action) {
1035
- var dt = normalizeTime(dt);
1036
- while (dt - this.now() > 0) { }
1037
- return action(this, state);
1038
- }
1039
-
1040
- function scheduleAbsolute(state, dueTime, action) {
1041
- return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
1042
- }
1043
-
1044
- return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
1045
- }());
1032
+ /**
1033
+ * Gets a scheduler that schedules work immediately on the current thread.
1034
+ */
1035
+ var immediateScheduler = Scheduler.immediate = (function () {
1036
+
1037
+ function scheduleNow(state, action) { return action(this, state); }
1038
+
1039
+ function scheduleRelative(state, dueTime, action) {
1040
+ var dt = normalizeTime(dt);
1041
+ while (dt - this.now() > 0) { }
1042
+ return action(this, state);
1043
+ }
1044
+
1045
+ function scheduleAbsolute(state, dueTime, action) {
1046
+ return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
1047
+ }
1048
+
1049
+ return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
1050
+ }());
1046
1051
 
1047
1052
  /**
1048
1053
  * Gets a scheduler that schedules work as soon as possible on the current thread.
@@ -1106,34 +1111,34 @@
1106
1111
  return currentScheduler;
1107
1112
  }());
1108
1113
 
1109
- var SchedulePeriodicRecursive = Rx.internals.SchedulePeriodicRecursive = (function () {
1110
- function tick(command, recurse) {
1111
- recurse(0, this._period);
1112
- try {
1113
- this._state = this._action(this._state);
1114
- } catch (e) {
1115
- this._cancel.dispose();
1116
- throw e;
1117
- }
1118
- }
1119
-
1120
- function SchedulePeriodicRecursive(scheduler, state, period, action) {
1121
- this._scheduler = scheduler;
1122
- this._state = state;
1123
- this._period = period;
1124
- this._action = action;
1125
- }
1126
-
1127
- SchedulePeriodicRecursive.prototype.start = function () {
1128
- var d = new SingleAssignmentDisposable();
1129
- this._cancel = d;
1130
- d.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0, this._period, tick.bind(this)));
1131
-
1132
- return d;
1133
- };
1134
-
1135
- return SchedulePeriodicRecursive;
1136
- }());
1114
+ var SchedulePeriodicRecursive = Rx.internals.SchedulePeriodicRecursive = (function () {
1115
+ function tick(command, recurse) {
1116
+ recurse(0, this._period);
1117
+ try {
1118
+ this._state = this._action(this._state);
1119
+ } catch (e) {
1120
+ this._cancel.dispose();
1121
+ throw e;
1122
+ }
1123
+ }
1124
+
1125
+ function SchedulePeriodicRecursive(scheduler, state, period, action) {
1126
+ this._scheduler = scheduler;
1127
+ this._state = state;
1128
+ this._period = period;
1129
+ this._action = action;
1130
+ }
1131
+
1132
+ SchedulePeriodicRecursive.prototype.start = function () {
1133
+ var d = new SingleAssignmentDisposable();
1134
+ this._cancel = d;
1135
+ d.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0, this._period, tick.bind(this)));
1136
+
1137
+ return d;
1138
+ };
1139
+
1140
+ return SchedulePeriodicRecursive;
1141
+ }());
1137
1142
 
1138
1143
 
1139
1144
  var scheduleMethod, clearMethod = noop;
@@ -1408,143 +1413,143 @@
1408
1413
  };
1409
1414
  }());
1410
1415
 
1411
- var Enumerator = Rx.internals.Enumerator = function (next) {
1412
- this._next = next;
1413
- };
1414
-
1415
- Enumerator.prototype.next = function () {
1416
- return this._next();
1417
- };
1418
-
1419
- Enumerator.prototype[$iterator$] = function () { return this; }
1420
-
1421
- var Enumerable = Rx.internals.Enumerable = function (iterator) {
1422
- this._iterator = iterator;
1423
- };
1424
-
1425
- Enumerable.prototype[$iterator$] = function () {
1426
- return this._iterator();
1427
- };
1428
-
1429
- Enumerable.prototype.concat = function () {
1430
- var sources = this;
1431
- return new AnonymousObservable(function (observer) {
1432
- var e;
1433
- try {
1434
- e = sources[$iterator$]();
1435
- } catch(err) {
1436
- observer.onError();
1437
- return;
1438
- }
1439
-
1440
- var isDisposed,
1441
- subscription = new SerialDisposable();
1442
- var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1443
- var currentItem;
1444
- if (isDisposed) { return; }
1445
-
1446
- try {
1447
- currentItem = e.next();
1448
- } catch (ex) {
1449
- observer.onError(ex);
1450
- return;
1451
- }
1452
-
1453
- if (currentItem.done) {
1454
- observer.onCompleted();
1455
- return;
1456
- }
1457
-
1458
- var d = new SingleAssignmentDisposable();
1459
- subscription.setDisposable(d);
1460
- d.setDisposable(currentItem.value.subscribe(
1461
- observer.onNext.bind(observer),
1462
- observer.onError.bind(observer),
1463
- function () { self(); })
1464
- );
1465
- });
1466
-
1467
- return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1468
- isDisposed = true;
1469
- }));
1470
- });
1471
- };
1472
-
1473
- Enumerable.prototype.catchException = function () {
1474
- var sources = this;
1475
- return new AnonymousObservable(function (observer) {
1476
- var e;
1477
- try {
1478
- e = sources[$iterator$]();
1479
- } catch(err) {
1480
- observer.onError();
1481
- return;
1482
- }
1483
-
1484
- var isDisposed,
1485
- lastException,
1486
- subscription = new SerialDisposable();
1487
- var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1488
- if (isDisposed) { return; }
1489
-
1490
- var currentItem;
1491
- try {
1492
- currentItem = e.next();
1493
- } catch (ex) {
1494
- observer.onError(ex);
1495
- return;
1496
- }
1497
-
1498
- if (currentItem.done) {
1499
- if (lastException) {
1500
- observer.onError(lastException);
1501
- } else {
1502
- observer.onCompleted();
1503
- }
1504
- return;
1505
- }
1506
-
1507
- var d = new SingleAssignmentDisposable();
1508
- subscription.setDisposable(d);
1509
- d.setDisposable(currentItem.value.subscribe(
1510
- observer.onNext.bind(observer),
1511
- function (exn) {
1512
- lastException = exn;
1513
- self();
1514
- },
1515
- observer.onCompleted.bind(observer)));
1516
- });
1517
- return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1518
- isDisposed = true;
1519
- }));
1520
- });
1521
- };
1522
-
1523
-
1524
- var enumerableRepeat = Enumerable.repeat = function (value, repeatCount) {
1525
- if (repeatCount == null) { repeatCount = -1; }
1526
- return new Enumerable(function () {
1527
- var left = repeatCount;
1528
- return new Enumerator(function () {
1529
- if (left === 0) { return doneEnumerator; }
1530
- if (left > 0) { left--; }
1531
- return { done: false, value: value };
1532
- });
1533
- });
1534
- };
1535
-
1536
- var enumerableFor = Enumerable.forEach = function (source, selector, thisArg) {
1537
- selector || (selector = identity);
1538
- return new Enumerable(function () {
1539
- var index = -1;
1540
- return new Enumerator(
1541
- function () {
1542
- return ++index < source.length ?
1543
- { done: false, value: selector.call(thisArg, source[index], index, source) } :
1544
- doneEnumerator;
1545
- });
1546
- });
1547
- };
1416
+ var Enumerator = Rx.internals.Enumerator = function (next) {
1417
+ this._next = next;
1418
+ };
1419
+
1420
+ Enumerator.prototype.next = function () {
1421
+ return this._next();
1422
+ };
1423
+
1424
+ Enumerator.prototype[$iterator$] = function () { return this; }
1425
+
1426
+ var Enumerable = Rx.internals.Enumerable = function (iterator) {
1427
+ this._iterator = iterator;
1428
+ };
1429
+
1430
+ Enumerable.prototype[$iterator$] = function () {
1431
+ return this._iterator();
1432
+ };
1433
+
1434
+ Enumerable.prototype.concat = function () {
1435
+ var sources = this;
1436
+ return new AnonymousObservable(function (observer) {
1437
+ var e;
1438
+ try {
1439
+ e = sources[$iterator$]();
1440
+ } catch(err) {
1441
+ observer.onError();
1442
+ return;
1443
+ }
1444
+
1445
+ var isDisposed,
1446
+ subscription = new SerialDisposable();
1447
+ var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1448
+ var currentItem;
1449
+ if (isDisposed) { return; }
1450
+
1451
+ try {
1452
+ currentItem = e.next();
1453
+ } catch (ex) {
1454
+ observer.onError(ex);
1455
+ return;
1456
+ }
1457
+
1458
+ if (currentItem.done) {
1459
+ observer.onCompleted();
1460
+ return;
1461
+ }
1462
+
1463
+ var d = new SingleAssignmentDisposable();
1464
+ subscription.setDisposable(d);
1465
+ d.setDisposable(currentItem.value.subscribe(
1466
+ observer.onNext.bind(observer),
1467
+ observer.onError.bind(observer),
1468
+ function () { self(); })
1469
+ );
1470
+ });
1471
+
1472
+ return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1473
+ isDisposed = true;
1474
+ }));
1475
+ });
1476
+ };
1477
+
1478
+ Enumerable.prototype.catchException = function () {
1479
+ var sources = this;
1480
+ return new AnonymousObservable(function (observer) {
1481
+ var e;
1482
+ try {
1483
+ e = sources[$iterator$]();
1484
+ } catch(err) {
1485
+ observer.onError();
1486
+ return;
1487
+ }
1488
+
1489
+ var isDisposed,
1490
+ lastException,
1491
+ subscription = new SerialDisposable();
1492
+ var cancelable = immediateScheduler.scheduleRecursive(function (self) {
1493
+ if (isDisposed) { return; }
1494
+
1495
+ var currentItem;
1496
+ try {
1497
+ currentItem = e.next();
1498
+ } catch (ex) {
1499
+ observer.onError(ex);
1500
+ return;
1501
+ }
1502
+
1503
+ if (currentItem.done) {
1504
+ if (lastException) {
1505
+ observer.onError(lastException);
1506
+ } else {
1507
+ observer.onCompleted();
1508
+ }
1509
+ return;
1510
+ }
1511
+
1512
+ var d = new SingleAssignmentDisposable();
1513
+ subscription.setDisposable(d);
1514
+ d.setDisposable(currentItem.value.subscribe(
1515
+ observer.onNext.bind(observer),
1516
+ function (exn) {
1517
+ lastException = exn;
1518
+ self();
1519
+ },
1520
+ observer.onCompleted.bind(observer)));
1521
+ });
1522
+ return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
1523
+ isDisposed = true;
1524
+ }));
1525
+ });
1526
+ };
1527
+
1528
+
1529
+ var enumerableRepeat = Enumerable.repeat = function (value, repeatCount) {
1530
+ if (repeatCount == null) { repeatCount = -1; }
1531
+ return new Enumerable(function () {
1532
+ var left = repeatCount;
1533
+ return new Enumerator(function () {
1534
+ if (left === 0) { return doneEnumerator; }
1535
+ if (left > 0) { left--; }
1536
+ return { done: false, value: value };
1537
+ });
1538
+ });
1539
+ };
1540
+
1541
+ var enumerableFor = Enumerable.forEach = function (source, selector, thisArg) {
1542
+ selector || (selector = identity);
1543
+ return new Enumerable(function () {
1544
+ var index = -1;
1545
+ return new Enumerator(
1546
+ function () {
1547
+ return ++index < source.length ?
1548
+ { done: false, value: selector.call(thisArg, source[index], index, source) } :
1549
+ doneEnumerator;
1550
+ });
1551
+ });
1552
+ };
1548
1553
 
1549
1554
  /**
1550
1555
  * Supports push-style iteration over an observable sequence.
@@ -3623,71 +3628,71 @@
3623
3628
  return this.replay(null, bufferSize, window, scheduler).refCount();
3624
3629
  };
3625
3630
 
3626
- /** @private */
3627
- var ConnectableObservable = Rx.ConnectableObservable = (function (_super) {
3628
- inherits(ConnectableObservable, _super);
3629
-
3630
- /**
3631
- * @constructor
3632
- * @private
3633
- */
3634
- function ConnectableObservable(source, subject) {
3635
- var state = {
3636
- subject: subject,
3637
- source: source.asObservable(),
3638
- hasSubscription: false,
3639
- subscription: null
3640
- };
3641
-
3642
- this.connect = function () {
3643
- if (!state.hasSubscription) {
3644
- state.hasSubscription = true;
3645
- state.subscription = new CompositeDisposable(state.source.subscribe(state.subject), disposableCreate(function () {
3646
- state.hasSubscription = false;
3647
- }));
3648
- }
3649
- return state.subscription;
3650
- };
3651
-
3652
- function subscribe(observer) {
3653
- return state.subject.subscribe(observer);
3654
- }
3655
-
3656
- _super.call(this, subscribe);
3657
- }
3658
-
3659
- /**
3660
- * @private
3661
- * @memberOf ConnectableObservable
3662
- */
3663
- ConnectableObservable.prototype.connect = function () { return this.connect(); };
3664
-
3665
- /**
3666
- * @private
3667
- * @memberOf ConnectableObservable
3668
- */
3669
- ConnectableObservable.prototype.refCount = function () {
3670
- var connectableSubscription = null, count = 0, source = this;
3671
- return new AnonymousObservable(function (observer) {
3672
- var shouldConnect, subscription;
3673
- count++;
3674
- shouldConnect = count === 1;
3675
- subscription = source.subscribe(observer);
3676
- if (shouldConnect) {
3677
- connectableSubscription = source.connect();
3678
- }
3679
- return disposableCreate(function () {
3680
- subscription.dispose();
3681
- count--;
3682
- if (count === 0) {
3683
- connectableSubscription.dispose();
3684
- }
3685
- });
3686
- });
3687
- };
3688
-
3689
- return ConnectableObservable;
3690
- }(Observable));
3631
+ /** @private */
3632
+ var ConnectableObservable = Rx.ConnectableObservable = (function (_super) {
3633
+ inherits(ConnectableObservable, _super);
3634
+
3635
+ /**
3636
+ * @constructor
3637
+ * @private
3638
+ */
3639
+ function ConnectableObservable(source, subject) {
3640
+ var state = {
3641
+ subject: subject,
3642
+ source: source.asObservable(),
3643
+ hasSubscription: false,
3644
+ subscription: null
3645
+ };
3646
+
3647
+ this.connect = function () {
3648
+ if (!state.hasSubscription) {
3649
+ state.hasSubscription = true;
3650
+ state.subscription = new CompositeDisposable(state.source.subscribe(state.subject), disposableCreate(function () {
3651
+ state.hasSubscription = false;
3652
+ }));
3653
+ }
3654
+ return state.subscription;
3655
+ };
3656
+
3657
+ function subscribe(observer) {
3658
+ return state.subject.subscribe(observer);
3659
+ }
3660
+
3661
+ _super.call(this, subscribe);
3662
+ }
3663
+
3664
+ /**
3665
+ * @private
3666
+ * @memberOf ConnectableObservable
3667
+ */
3668
+ ConnectableObservable.prototype.connect = function () { return this.connect(); };
3669
+
3670
+ /**
3671
+ * @private
3672
+ * @memberOf ConnectableObservable
3673
+ */
3674
+ ConnectableObservable.prototype.refCount = function () {
3675
+ var connectableSubscription = null, count = 0, source = this;
3676
+ return new AnonymousObservable(function (observer) {
3677
+ var shouldConnect, subscription;
3678
+ count++;
3679
+ shouldConnect = count === 1;
3680
+ subscription = source.subscribe(observer);
3681
+ if (shouldConnect) {
3682
+ connectableSubscription = source.connect();
3683
+ }
3684
+ return disposableCreate(function () {
3685
+ subscription.dispose();
3686
+ count--;
3687
+ if (count === 0) {
3688
+ connectableSubscription.dispose();
3689
+ }
3690
+ });
3691
+ });
3692
+ };
3693
+
3694
+ return ConnectableObservable;
3695
+ }(Observable));
3691
3696
 
3692
3697
  function observableTimerTimeSpan(dueTime, scheduler) {
3693
3698
  var d = normalizeTime(dueTime);
@@ -4034,7 +4039,7 @@
4034
4039
  * @param {Scheduler} [scheduler] Scheduler on which to run the generator loop. If not specified, the timeout scheduler is used.
4035
4040
  * @returns {Observable} The generated sequence.
4036
4041
  */
4037
- Observable.generateWithTime = function (initialState, condition, iterate, resultSelector, timeSelector, scheduler) {
4042
+ Observable.generateWithRelativeTime = function (initialState, condition, iterate, resultSelector, timeSelector, scheduler) {
4038
4043
  scheduler || (scheduler = timeoutScheduler);
4039
4044
  return new AnonymousObservable(function (observer) {
4040
4045
  var first = true,
@@ -4873,23 +4878,23 @@
4873
4878
  return AutoDetachObserver;
4874
4879
  }(AbstractObserver));
4875
4880
 
4876
- /** @private */
4877
- var InnerSubscription = function (subject, observer) {
4878
- this.subject = subject;
4879
- this.observer = observer;
4880
- };
4881
-
4882
- /**
4883
- * @private
4884
- * @memberOf InnerSubscription
4885
- */
4886
- InnerSubscription.prototype.dispose = function () {
4887
- if (!this.subject.isDisposed && this.observer !== null) {
4888
- var idx = this.subject.observers.indexOf(this.observer);
4889
- this.subject.observers.splice(idx, 1);
4890
- this.observer = null;
4891
- }
4892
- };
4881
+ /** @private */
4882
+ var InnerSubscription = function (subject, observer) {
4883
+ this.subject = subject;
4884
+ this.observer = observer;
4885
+ };
4886
+
4887
+ /**
4888
+ * @private
4889
+ * @memberOf InnerSubscription
4890
+ */
4891
+ InnerSubscription.prototype.dispose = function () {
4892
+ if (!this.subject.isDisposed && this.observer !== null) {
4893
+ var idx = this.subject.observers.indexOf(this.observer);
4894
+ this.subject.observers.splice(idx, 1);
4895
+ this.observer = null;
4896
+ }
4897
+ };
4893
4898
 
4894
4899
  /**
4895
4900
  * Represents an object that is both an observable sequence as well as an observer.
@@ -5124,50 +5129,50 @@
5124
5129
  return AsyncSubject;
5125
5130
  }(Observable));
5126
5131
 
5127
- /** @private */
5128
- var AnonymousSubject = (function (_super) {
5129
- inherits(AnonymousSubject, _super);
5130
-
5131
- function subscribe(observer) {
5132
- return this.observable.subscribe(observer);
5133
- }
5134
-
5135
- /**
5136
- * @private
5137
- * @constructor
5138
- */
5139
- function AnonymousSubject(observer, observable) {
5140
- _super.call(this, subscribe);
5141
- this.observer = observer;
5142
- this.observable = observable;
5143
- }
5144
-
5145
- addProperties(AnonymousSubject.prototype, Observer, {
5146
- /**
5147
- * @private
5148
- * @memberOf AnonymousSubject#
5149
- */
5150
- onCompleted: function () {
5151
- this.observer.onCompleted();
5152
- },
5153
- /**
5154
- * @private
5155
- * @memberOf AnonymousSubject#
5156
- */
5157
- onError: function (exception) {
5158
- this.observer.onError(exception);
5159
- },
5160
- /**
5161
- * @private
5162
- * @memberOf AnonymousSubject#
5163
- */
5164
- onNext: function (value) {
5165
- this.observer.onNext(value);
5166
- }
5167
- });
5168
-
5169
- return AnonymousSubject;
5170
- }(Observable));
5132
+ /** @private */
5133
+ var AnonymousSubject = (function (_super) {
5134
+ inherits(AnonymousSubject, _super);
5135
+
5136
+ function subscribe(observer) {
5137
+ return this.observable.subscribe(observer);
5138
+ }
5139
+
5140
+ /**
5141
+ * @private
5142
+ * @constructor
5143
+ */
5144
+ function AnonymousSubject(observer, observable) {
5145
+ _super.call(this, subscribe);
5146
+ this.observer = observer;
5147
+ this.observable = observable;
5148
+ }
5149
+
5150
+ addProperties(AnonymousSubject.prototype, Observer, {
5151
+ /**
5152
+ * @private
5153
+ * @memberOf AnonymousSubject#
5154
+ */
5155
+ onCompleted: function () {
5156
+ this.observer.onCompleted();
5157
+ },
5158
+ /**
5159
+ * @private
5160
+ * @memberOf AnonymousSubject#
5161
+ */
5162
+ onError: function (exception) {
5163
+ this.observer.onError(exception);
5164
+ },
5165
+ /**
5166
+ * @private
5167
+ * @memberOf AnonymousSubject#
5168
+ */
5169
+ onNext: function (value) {
5170
+ this.observer.onNext(value);
5171
+ }
5172
+ });
5173
+
5174
+ return AnonymousSubject;
5175
+ }(Observable));
5171
5176
 
5172
5177
  /**
5173
5178
  * Represents a value that changes over time.
@@ -5431,21 +5436,21 @@
5431
5436
  return ReplaySubject;
5432
5437
  }(Observable));
5433
5438
 
5434
- if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
5435
- root.Rx = Rx;
5436
-
5437
- define(function() {
5438
- return Rx;
5439
- });
5440
- } else if (freeExports && freeModule) {
5441
- // in Node.js or RingoJS
5442
- if (moduleExports) {
5443
- (freeModule.exports = Rx).Rx = Rx;
5444
- } else {
5445
- freeExports.Rx = Rx;
5446
- }
5447
- } else {
5448
- // in a browser or Rhino
5449
- root.Rx = Rx;
5439
+ if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
5440
+ root.Rx = Rx;
5441
+
5442
+ define(function() {
5443
+ return Rx;
5444
+ });
5445
+ } else if (freeExports && freeModule) {
5446
+ // in Node.js or RingoJS
5447
+ if (moduleExports) {
5448
+ (freeModule.exports = Rx).Rx = Rx;
5449
+ } else {
5450
+ freeExports.Rx = Rx;
5451
+ }
5452
+ } else {
5453
+ // in a browser or Rhino
5454
+ root.Rx = Rx;
5450
5455
  }
5451
5456
  }.call(this));