| "use strict"; | 
| module.exports = | 
|     function(Promise, PromiseArray, debug) { | 
| var PromiseInspection = Promise.PromiseInspection; | 
| var util = require("./util"); | 
|   | 
| function SettledPromiseArray(values) { | 
|     this.constructor$(values); | 
| } | 
| util.inherits(SettledPromiseArray, PromiseArray); | 
|   | 
| SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { | 
|     this._values[index] = inspection; | 
|     var totalResolved = ++this._totalResolved; | 
|     if (totalResolved >= this._length) { | 
|         this._resolve(this._values); | 
|         return true; | 
|     } | 
|     return false; | 
| }; | 
|   | 
| SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { | 
|     var ret = new PromiseInspection(); | 
|     ret._bitField = 33554432; | 
|     ret._settledValueField = value; | 
|     return this._promiseResolved(index, ret); | 
| }; | 
| SettledPromiseArray.prototype._promiseRejected = function (reason, index) { | 
|     var ret = new PromiseInspection(); | 
|     ret._bitField = 16777216; | 
|     ret._settledValueField = reason; | 
|     return this._promiseResolved(index, ret); | 
| }; | 
|   | 
| Promise.settle = function (promises) { | 
|     debug.deprecated(".settle()", ".reflect()"); | 
|     return new SettledPromiseArray(promises).promise(); | 
| }; | 
|   | 
| Promise.allSettled = function (promises) { | 
|     return new SettledPromiseArray(promises).promise(); | 
| }; | 
|   | 
| Promise.prototype.settle = function () { | 
|     return Promise.settle(this); | 
| }; | 
| }; |