{"ast":null,"code":"import { Observable } from '../Observable';\nexport function range() {\n  var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var count = arguments.length > 1 ? arguments[1] : undefined;\n  var scheduler = arguments.length > 2 ? arguments[2] : undefined;\n  return new Observable(function (subscriber) {\n    if (count === undefined) {\n      count = start;\n      start = 0;\n    }\n\n    var index = 0;\n    var current = start;\n\n    if (scheduler) {\n      return scheduler.schedule(dispatch, 0, {\n        index: index,\n        count: count,\n        start: start,\n        subscriber: subscriber\n      });\n    } else {\n      do {\n        if (index++ >= count) {\n          subscriber.complete();\n          break;\n        }\n\n        subscriber.next(current++);\n\n        if (subscriber.closed) {\n          break;\n        }\n      } while (true);\n    }\n\n    return undefined;\n  });\n}\nexport function dispatch(state) {\n  var start = state.start,\n      index = state.index,\n      count = state.count,\n      subscriber = state.subscriber;\n\n  if (index >= count) {\n    subscriber.complete();\n    return;\n  }\n\n  subscriber.next(start);\n\n  if (subscriber.closed) {\n    return;\n  }\n\n  state.index = index + 1;\n  state.start = start + 1;\n  this.schedule(state);\n} //# sourceMappingURL=range.js.map","map":null,"metadata":{},"sourceType":"module"}