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.
		
		
		
		
		
			
		
			
				
					104 lines
				
				2.7 KiB
			
		
		
			
		
	
	
					104 lines
				
				2.7 KiB
			| 
											3 years ago
										 | "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; | ||
|  | }; |