massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / esnext.async-iterator.take.js
index fc59d883b2ea8b7a003e84242ad65e14e873a5b6..81520365844ac9e944d18f9cf9f64b2a3153a934 100644 (file)
@@ -1,15 +1,26 @@
 'use strict';
 // https://github.com/tc39/proposal-iterator-helpers
 var $ = require('../internals/export');
+var apply = require('../internals/function-apply');
+var call = require('../internals/function-call');
 var anObject = require('../internals/an-object');
 var toPositiveInteger = require('../internals/to-positive-integer');
 var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
 
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
+var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
+  var iterator = this.iterator;
+  var returnMethod, result;
   if (!this.remaining--) {
+    result = { done: true, value: undefined };
     this.done = true;
-    return { done: true, value: undefined };
-  } return this.next.call(this.iterator, arg);
+    returnMethod = iterator['return'];
+    if (returnMethod !== undefined) {
+      return Promise.resolve(call(returnMethod, iterator)).then(function () {
+        return result;
+      });
+    }
+    return result;
+  } return apply(this.next, iterator, args);
 });
 
 $({ target: 'AsyncIterator', proto: true, real: true }, {