You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							2.7 KiB
						
					
					
				"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; | 
						|
};
 | 
						|
 |