| 'use strict'; | 
| var $ = require('../internals/export'); | 
| var getBuiltIn = require('../internals/get-built-in'); | 
| var call = require('../internals/function-call'); | 
| var anObject = require('../internals/an-object'); | 
| var isConstructor = require('../internals/is-constructor'); | 
| var getIterator = require('../internals/get-iterator'); | 
| var getMethod = require('../internals/get-method'); | 
| var iterate = require('../internals/iterate'); | 
| var wellKnownSymbol = require('../internals/well-known-symbol'); | 
|   | 
| var $$OBSERVABLE = wellKnownSymbol('observable'); | 
|   | 
| // `Observable.from` method | 
| // https://github.com/tc39/proposal-observable | 
| $({ target: 'Observable', stat: true, forced: true }, { | 
|   from: function from(x) { | 
|     var C = isConstructor(this) ? this : getBuiltIn('Observable'); | 
|     var observableMethod = getMethod(anObject(x), $$OBSERVABLE); | 
|     if (observableMethod) { | 
|       var observable = anObject(call(observableMethod, x)); | 
|       return observable.constructor === C ? observable : new C(function (observer) { | 
|         return observable.subscribe(observer); | 
|       }); | 
|     } | 
|     var iterator = getIterator(x); | 
|     return new C(function (observer) { | 
|       iterate(iterator, function (it, stop) { | 
|         observer.next(it); | 
|         if (observer.closed) return stop(); | 
|       }, { IS_ITERATOR: true, INTERRUPTED: true }); | 
|       observer.complete(); | 
|     }); | 
|   } | 
| }); |