source: frontend/node_modules/bluebird/js/release/bind.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 13 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.9 KB
Line 
1"use strict";
2module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
3var calledBind = false;
4var rejectThis = function(_, e) {
5 this._reject(e);
6};
7
8var targetRejected = function(e, context) {
9 context.promiseRejectionQueued = true;
10 context.bindingPromise._then(rejectThis, rejectThis, null, this, e);
11};
12
13var bindingResolved = function(thisArg, context) {
14 if (((this._bitField & 50397184) === 0)) {
15 this._resolveCallback(context.target);
16 }
17};
18
19var bindingRejected = function(e, context) {
20 if (!context.promiseRejectionQueued) this._reject(e);
21};
22
23Promise.prototype.bind = function (thisArg) {
24 if (!calledBind) {
25 calledBind = true;
26 Promise.prototype._propagateFrom = debug.propagateFromFunction();
27 Promise.prototype._boundValue = debug.boundValueFunction();
28 }
29 var maybePromise = tryConvertToPromise(thisArg);
30 var ret = new Promise(INTERNAL);
31 ret._propagateFrom(this, 1);
32 var target = this._target();
33 ret._setBoundTo(maybePromise);
34 if (maybePromise instanceof Promise) {
35 var context = {
36 promiseRejectionQueued: false,
37 promise: ret,
38 target: target,
39 bindingPromise: maybePromise
40 };
41 target._then(INTERNAL, targetRejected, undefined, ret, context);
42 maybePromise._then(
43 bindingResolved, bindingRejected, undefined, ret, context);
44 ret._setOnCancel(maybePromise);
45 } else {
46 ret._resolveCallback(target);
47 }
48 return ret;
49};
50
51Promise.prototype._setBoundTo = function (obj) {
52 if (obj !== undefined) {
53 this._bitField = this._bitField | 2097152;
54 this._boundTo = obj;
55 } else {
56 this._bitField = this._bitField & (~2097152);
57 }
58};
59
60Promise.prototype._isBound = function () {
61 return (this._bitField & 2097152) === 2097152;
62};
63
64Promise.bind = function (thisArg, value) {
65 return Promise.resolve(value).bind(thisArg);
66};
67};
Note: See TracBrowser for help on using the repository browser.