massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / es.promise.any.js
1 'use strict';
2 var $ = require('../internals/export');
3 var aCallable = require('../internals/a-callable');
4 var getBuiltIn = require('../internals/get-built-in');
5 var call = require('../internals/function-call');
6 var newPromiseCapabilityModule = require('../internals/new-promise-capability');
7 var perform = require('../internals/perform');
8 var iterate = require('../internals/iterate');
9
10 var PROMISE_ANY_ERROR = 'No one promise resolved';
11
12 // `Promise.any` method
13 // https://tc39.es/ecma262/#sec-promise.any
14 $({ target: 'Promise', stat: true }, {
15   any: function any(iterable) {
16     var C = this;
17     var AggregateError = getBuiltIn('AggregateError');
18     var capability = newPromiseCapabilityModule.f(C);
19     var resolve = capability.resolve;
20     var reject = capability.reject;
21     var result = perform(function () {
22       var promiseResolve = aCallable(C.resolve);
23       var errors = [];
24       var counter = 0;
25       var remaining = 1;
26       var alreadyResolved = false;
27       iterate(iterable, function (promise) {
28         var index = counter++;
29         var alreadyRejected = false;
30         remaining++;
31         call(promiseResolve, C, promise).then(function (value) {
32           if (alreadyRejected || alreadyResolved) return;
33           alreadyResolved = true;
34           resolve(value);
35         }, function (error) {
36           if (alreadyRejected || alreadyResolved) return;
37           alreadyRejected = true;
38           errors[index] = error;
39           --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
40         });
41       });
42       --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
43     });
44     if (result.error) reject(result.value);
45     return capability.promise;
46   }
47 });