aboutsummaryrefslogtreecommitdiff
path: root/node_modules/promise/lib/synchronous.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/promise/lib/synchronous.js')
-rw-r--r--node_modules/promise/lib/synchronous.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/node_modules/promise/lib/synchronous.js b/node_modules/promise/lib/synchronous.js
new file mode 100644
index 000000000..2f97451aa
--- /dev/null
+++ b/node_modules/promise/lib/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;
+};