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