| "use strict"; | 
| 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; | 
| }; |