diff options
| author | HumairAK <humair88@hotmail.com> | 2016-07-25 05:57:23 +0000 |
|---|---|---|
| committer | HumairAK <humair88@hotmail.com> | 2016-07-25 05:57:23 +0000 |
| commit | c27a1b924a8e07079e7dc8c61923a765df46c9e9 (patch) | |
| tree | bcc2fb017ed8f5f1c8290725009999a16abfbae5 /node_modules/promise/setimmediate/synchronous.js | |
| parent | 1904de750f421cce9bec21ab89c50ea7a38a37d4 (diff) | |
| parent | 6d8857b2a3774db605f10631e327f152f241834b (diff) | |
Merge branch 'master' of https://github.com/HumairAK/solutions_repo
Diffstat (limited to 'node_modules/promise/setimmediate/synchronous.js')
| -rw-r--r-- | node_modules/promise/setimmediate/synchronous.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/node_modules/promise/setimmediate/synchronous.js b/node_modules/promise/setimmediate/synchronous.js new file mode 100644 index 0000000..2f97451 --- /dev/null +++ b/node_modules/promise/setimmediate/synchronous.js @@ -0,0 +1,62 @@ +'use strict'; + +var Promise = require('./core.js'); + +module.exports = Promise; +Promise.enableSynchronous = function () { + Promise.prototype.isPending = function() { + return this.getState() == 0; + }; + + Promise.prototype.isFulfilled = function() { + return this.getState() == 1; + }; + + Promise.prototype.isRejected = function() { + return this.getState() == 2; + }; + + Promise.prototype.getValue = function () { + if (this._81 === 3) { + return this._65.getValue(); + } + + if (!this.isFulfilled()) { + throw new Error('Cannot get a value of an unfulfilled promise.'); + } + + return this._65; + }; + + Promise.prototype.getReason = function () { + if (this._81 === 3) { + return this._65.getReason(); + } + + if (!this.isRejected()) { + throw new Error('Cannot get a rejection reason of a non-rejected promise.'); + } + + return this._65; + }; + + Promise.prototype.getState = function () { + if (this._81 === 3) { + return this._65.getState(); + } + if (this._81 === -1 || this._81 === -2) { + return 0; + } + + return this._81; + }; +}; + +Promise.disableSynchronous = function() { + Promise.prototype.isPending = undefined; + Promise.prototype.isFulfilled = undefined; + Promise.prototype.isRejected = undefined; + Promise.prototype.getValue = undefined; + Promise.prototype.getReason = undefined; + Promise.prototype.getState = undefined; +}; |
