| Index: third_party/polymer/v0_8/components/promise-polyfill/Promise-Statics.js
|
| diff --git a/third_party/polymer/v0_8/components/promise-polyfill/Promise-Statics.js b/third_party/polymer/v0_8/components/promise-polyfill/Promise-Statics.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7ce402ebd059049a0c438b49cc4a8c2b518a9ede
|
| --- /dev/null
|
| +++ b/third_party/polymer/v0_8/components/promise-polyfill/Promise-Statics.js
|
| @@ -0,0 +1,37 @@
|
| +Promise.all = Promise.all || function () {
|
| + var args = Array.prototype.slice.call(arguments.length === 1 && Array.isArray(arguments[0]) ? arguments[0] : arguments);
|
| +
|
| + return new Promise(function (resolve, reject) {
|
| + if (args.length === 0) return resolve([]);
|
| + var remaining = args.length;
|
| + function res(i, val) {
|
| + try {
|
| + if (val && (typeof val === 'object' || typeof val === 'function')) {
|
| + var then = val.then;
|
| + if (typeof then === 'function') {
|
| + then.call(val, function (val) { res(i, val) }, reject);
|
| + return;
|
| + }
|
| + }
|
| + args[i] = val;
|
| + if (--remaining === 0) {
|
| + resolve(args);
|
| + }
|
| + } catch (ex) {
|
| + reject(ex);
|
| + }
|
| + }
|
| + for (var i = 0; i < args.length; i++) {
|
| + res(i, args[i]);
|
| + }
|
| + });
|
| +};
|
| +
|
| +Promise.race = Promise.race || function (values) {
|
| + return new Promise(function (resolve, reject) {
|
| + for(var i = 0, len = values.length; i < len; i++) {
|
| + values[i].then(resolve, reject);
|
| + }
|
| + });
|
| +};
|
| +
|
|
|