aboutsummaryrefslogtreecommitdiff
path: root/node_modules/promise/setimmediate/synchronous.js
diff options
context:
space:
mode:
authorHumairAK <humair88@hotmail.com>2016-07-25 05:57:23 +0000
committerHumairAK <humair88@hotmail.com>2016-07-25 05:57:23 +0000
commitc27a1b924a8e07079e7dc8c61923a765df46c9e9 (patch)
treebcc2fb017ed8f5f1c8290725009999a16abfbae5 /node_modules/promise/setimmediate/synchronous.js
parent1904de750f421cce9bec21ab89c50ea7a38a37d4 (diff)
parent6d8857b2a3774db605f10631e327f152f241834b (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.js62
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;
+};