“use strict”; module.exports = function(Promise) { function PromiseInspection(promise) {

if (promise !== undefined) {
    promise = promise._target();
    this._bitField = promise._bitField;
    this._settledValue = promise._settledValue;
}
else {
    this._bitField = 0;
    this._settledValue = undefined;
}

}

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/hc1DLj\u000a");
}
return this._settledValue;

};

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/hPuiwB\u000a");
}
return this._settledValue;

};

PromiseInspection.prototype.isFulfilled = Promise.prototype._isFulfilled = function () {

return (this._bitField & 268435456) > 0;

};

PromiseInspection.prototype.isRejected = Promise.prototype._isRejected = function () {

return (this._bitField & 134217728) > 0;

};

PromiseInspection.prototype.isPending = Promise.prototype._isPending = function () {

return (this._bitField & 402653184) === 0;

};

PromiseInspection.prototype.isResolved = Promise.prototype._isResolved = function () {

return (this._bitField & 402653184) > 0;

};

Promise.prototype.isPending = function() {

return this._target()._isPending();

};

Promise.prototype.isRejected = function() {

return this._target()._isRejected();

};

Promise.prototype.isFulfilled = function() {

return this._target()._isFulfilled();

};

Promise.prototype.isResolved = function() {

return this._target()._isResolved();

};

Promise.prototype._value = function() {

return this._settledValue;

};

Promise.prototype._reason = function() {

this._unsetRejectionIsUnhandled();
return this._settledValue;

};

Promise.prototype.value = function() {

var target = this._target();
if (!target.isFulfilled()) {
    throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a    See http://goo.gl/hc1DLj\u000a");
}
return target._settledValue;

};

Promise.prototype.reason = function() {

var target = this._target();
if (!target.isRejected()) {
    throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a    See http://goo.gl/hPuiwB\u000a");
}
target._unsetRejectionIsUnhandled();
return target._settledValue;

};

Promise.PromiseInspection = PromiseInspection; };