code: function (iter) {
        function continuer(verb, arg) {
          var result;
          try {
            result = iter[verb](arg);
          } catch (err) {
            return Promise.reject(err);
          }
          if (result.done) {
            return result.value;
          } else {
            return Promise.resolve(result.value).then(onFulfilled, onRejected);
          }
        }
        var onFulfilled = continuer.bind(continuer, "next");
        var onRejected = continuer.bind(continuer, "throw");
        return onFulfilled();
      }
docs: Iterate over *Iterator*. https://gist.github.com/jakearchibald/31b89cba627924972ad6