massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / internals / async-from-sync-iterator.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/async-from-sync-iterator.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/async-from-sync-iterator.js
new file mode 100644 (file)
index 0000000..dd1d7ac
--- /dev/null
@@ -0,0 +1,61 @@
+'use strict';
+var apply = require('../internals/function-apply');
+var anObject = require('../internals/an-object');
+var create = require('../internals/object-create');
+var getMethod = require('../internals/get-method');
+var redefineAll = require('../internals/redefine-all');
+var InternalStateModule = require('../internals/internal-state');
+var getBuiltIn = require('../internals/get-built-in');
+var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
+
+var Promise = getBuiltIn('Promise');
+
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.get;
+
+var asyncFromSyncIteratorContinuation = function (result, resolve, reject) {
+  var done = result.done;
+  Promise.resolve(result.value).then(function (value) {
+    resolve({ done: done, value: value });
+  }, reject);
+};
+
+var AsyncFromSyncIterator = function AsyncIterator(iterator) {
+  setInternalState(this, {
+    iterator: anObject(iterator),
+    next: iterator.next
+  });
+};
+
+AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
+  next: function next(arg) {
+    var state = getInternalState(this);
+    var hasArg = !!arguments.length;
+    return new Promise(function (resolve, reject) {
+      var result = anObject(apply(state.next, state.iterator, hasArg ? [arg] : []));
+      asyncFromSyncIteratorContinuation(result, resolve, reject);
+    });
+  },
+  'return': function (arg) {
+    var iterator = getInternalState(this).iterator;
+    var hasArg = !!arguments.length;
+    return new Promise(function (resolve, reject) {
+      var $return = getMethod(iterator, 'return');
+      if ($return === undefined) return resolve({ done: true, value: arg });
+      var result = anObject(apply($return, iterator, hasArg ? [arg] : []));
+      asyncFromSyncIteratorContinuation(result, resolve, reject);
+    });
+  },
+  'throw': function (arg) {
+    var iterator = getInternalState(this).iterator;
+    var hasArg = !!arguments.length;
+    return new Promise(function (resolve, reject) {
+      var $throw = getMethod(iterator, 'throw');
+      if ($throw === undefined) return reject(arg);
+      var result = anObject(apply($throw, iterator, hasArg ? [arg] : []));
+      asyncFromSyncIteratorContinuation(result, resolve, reject);
+    });
+  }
+});
+
+module.exports = AsyncFromSyncIterator;