massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / esnext.async-iterator.from.js
index e986a73b28e380b68751b7e61dca9c1299159936..1ff70145316a8a59e032a8174d5c1adab3ef936b 100644 (file)
@@ -1,30 +1,37 @@
 // https://github.com/tc39/proposal-iterator-helpers
 var $ = require('../internals/export');
-var path = require('../internals/path');
-var aFunction = require('../internals/a-function');
+var apply = require('../internals/function-apply');
 var anObject = require('../internals/an-object');
 var toObject = require('../internals/to-object');
+var isPrototypeOf = require('../internals/object-is-prototype-of');
+var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
 var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
+var getAsyncIterator = require('../internals/get-async-iterator');
+var getIterator = require('../internals/get-iterator');
+var getIteratorMethod = require('../internals/get-iterator-method');
+var getMethod = require('../internals/get-method');
+var wellKnownSymbol = require('../internals/well-known-symbol');
+var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
 
-var AsyncIterator = path.AsyncIterator;
+var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
 
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
-  return anObject(this.next.call(this.iterator, arg));
+var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
+  return anObject(apply(this.next, this.iterator, args));
 }, true);
 
 $({ target: 'AsyncIterator', stat: true }, {
   from: function from(O) {
     var object = toObject(O);
-    var usingIterator = getAsyncIteratorMethod(object);
+    var usingIterator = getMethod(object, ASYNC_ITERATOR);
     var iterator;
-    if (usingIterator != null) {
-      iterator = aFunction(usingIterator).call(object);
-      if (iterator instanceof AsyncIterator) return iterator;
-    } else {
-      iterator = object;
-    } return new AsyncIteratorProxy({
-      iterator: iterator
-    });
+    if (usingIterator) {
+      iterator = getAsyncIterator(object, usingIterator);
+      if (isPrototypeOf(AsyncIteratorPrototype, iterator)) return iterator;
+    }
+    if (iterator === undefined) {
+      usingIterator = getIteratorMethod(object);
+      if (usingIterator) return new AsyncFromSyncIterator(getIterator(object, usingIterator));
+    }
+    return new AsyncIteratorProxy({ iterator: iterator !== undefined ? iterator : object });
   }
 });