{"ast":null,"code":"import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n  if (!input) {\n    throw new Error('Iterable cannot be null');\n  }\n\n  return new Observable(subscriber => {\n    const sub = new Subscription();\n    let iterator;\n    sub.add(() => {\n      if (iterator && typeof iterator.return === 'function') {\n        iterator.return();\n      }\n    });\n    sub.add(scheduler.schedule(() => {\n      iterator = input[Symbol_iterator]();\n      sub.add(scheduler.schedule(function () {\n        if (subscriber.closed) {\n          return;\n        }\n\n        let value;\n        let done;\n\n        try {\n          const result = iterator.next();\n          value = result.value;\n          done = result.done;\n        } catch (err) {\n          subscriber.error(err);\n          return;\n        }\n\n        if (done) {\n          subscriber.complete();\n        } else {\n          subscriber.next(value);\n          this.schedule();\n        }\n      }));\n    }));\n    return sub;\n  });\n} //# sourceMappingURL=scheduleIterable.js.map","map":null,"metadata":{},"sourceType":"module"}