--- /dev/null
+import { Subscriber } from '../Subscriber';
+import { observable as Symbol_observable } from '../symbol/observable';
+
+/**
+ * Subscribes to an object that implements Symbol.observable with the given
+ * Subscriber.
+ * @param obj An object that implements Symbol.observable
+ */
+export const subscribeToObservable = <T>(obj: any) => (subscriber: Subscriber<T>) => {
+ const obs = obj[Symbol_observable]();
+ if (typeof obs.subscribe !== 'function') {
+ // Should be caught by observable subscribe function error handling.
+ throw new TypeError('Provided object does not correctly implement Symbol.observable');
+ } else {
+ return obs.subscribe(subscriber);
+ }
+};