text:   /**
     * Returns the values from the source observable sequence until the other observable sequence produces a value.
     * @param {Observable | Promise} other Observable sequence or Promise that terminates propagation of elements of the source sequence.
     * @returns {Observable} An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation.
     */
    observableProto.takeUntil = function (other) {
      var source = this;
      return new AnonymousObservable(function (o) {
        isPromise(other) && (other = observableFromPromise(other));
        return new CompositeDisposable(
          source.subscribe(o),
          other.subscribe(function () { o.onCompleted(); }, function (e) { o.onError(e); }, noop)
        );
      }, source);
    };
  