Spaces:
Paused
Paused
| ; | |
| module.exports = function(Promise) { | |
| function PromiseInspection(promise) { | |
| if (promise !== undefined) { | |
| promise = promise._target(); | |
| this._bitField = promise._bitField; | |
| this._settledValueField = promise._isFateSealed() | |
| ? promise._settledValue() : undefined; | |
| } | |
| else { | |
| this._bitField = 0; | |
| this._settledValueField = undefined; | |
| } | |
| } | |
| PromiseInspection.prototype._settledValue = function() { | |
| return this._settledValueField; | |
| }; | |
| var value = PromiseInspection.prototype.value = function () { | |
| if (!this.isFulfilled()) { | |
| throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); | |
| } | |
| return this._settledValue(); | |
| }; | |
| var reason = PromiseInspection.prototype.error = | |
| PromiseInspection.prototype.reason = function () { | |
| if (!this.isRejected()) { | |
| throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); | |
| } | |
| return this._settledValue(); | |
| }; | |
| var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { | |
| return (this._bitField & 33554432) !== 0; | |
| }; | |
| var isRejected = PromiseInspection.prototype.isRejected = function () { | |
| return (this._bitField & 16777216) !== 0; | |
| }; | |
| var isPending = PromiseInspection.prototype.isPending = function () { | |
| return (this._bitField & 50397184) === 0; | |
| }; | |
| var isResolved = PromiseInspection.prototype.isResolved = function () { | |
| return (this._bitField & 50331648) !== 0; | |
| }; | |
| PromiseInspection.prototype.isCancelled = function() { | |
| return (this._bitField & 8454144) !== 0; | |
| }; | |
| Promise.prototype.__isCancelled = function() { | |
| return (this._bitField & 65536) === 65536; | |
| }; | |
| Promise.prototype._isCancelled = function() { | |
| return this._target().__isCancelled(); | |
| }; | |
| Promise.prototype.isCancelled = function() { | |
| return (this._target()._bitField & 8454144) !== 0; | |
| }; | |
| Promise.prototype.isPending = function() { | |
| return isPending.call(this._target()); | |
| }; | |
| Promise.prototype.isRejected = function() { | |
| return isRejected.call(this._target()); | |
| }; | |
| Promise.prototype.isFulfilled = function() { | |
| return isFulfilled.call(this._target()); | |
| }; | |
| Promise.prototype.isResolved = function() { | |
| return isResolved.call(this._target()); | |
| }; | |
| Promise.prototype.value = function() { | |
| return value.call(this._target()); | |
| }; | |
| Promise.prototype.reason = function() { | |
| var target = this._target(); | |
| target._unsetRejectionIsUnhandled(); | |
| return reason.call(target); | |
| }; | |
| Promise.prototype._value = function() { | |
| return this._settledValue(); | |
| }; | |
| Promise.prototype._reason = function() { | |
| this._unsetRejectionIsUnhandled(); | |
| return this._settledValue(); | |
| }; | |
| Promise.PromiseInspection = PromiseInspection; | |
| }; | |