“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; };