| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| var Observable_1 = require("../Observable"); |
| function range(start, count, scheduler) { |
| if (start === void 0) { start = 0; } |
| return new Observable_1.Observable(function (subscriber) { |
| if (count === undefined) { |
| count = start; |
| start = 0; |
| } |
| var index = 0; |
| var current = start; |
| if (scheduler) { |
| return scheduler.schedule(dispatch, 0, { |
| index: index, count: count, start: start, subscriber: subscriber |
| }); |
| } |
| else { |
| do { |
| if (index++ >= count) { |
| subscriber.complete(); |
| break; |
| } |
| subscriber.next(current++); |
| if (subscriber.closed) { |
| break; |
| } |
| } while (true); |
| } |
| return undefined; |
| }); |
| } |
| exports.range = range; |
| function dispatch(state) { |
| var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; |
| if (index >= count) { |
| subscriber.complete(); |
| return; |
| } |
| subscriber.next(start); |
| if (subscriber.closed) { |
| return; |
| } |
| state.index = index + 1; |
| state.start = start + 1; |
| this.schedule(state); |
| } |
| exports.dispatch = dispatch; |
| //# sourceMappingURL=range.js.map |