Home | History | Annotate | Download | only in src

Lines Matching refs:promise

28 var promiseStatus = GLOBAL_PRIVATE("Promise#status");
29 var promiseValue = GLOBAL_PRIVATE("Promise#value");
30 var promiseOnResolve = GLOBAL_PRIVATE("Promise#onResolve");
31 var promiseOnReject = GLOBAL_PRIVATE("Promise#onReject");
32 var promiseRaw = GLOBAL_PRIVATE("Promise#raw");
33 var promiseDebug = GLOBAL_PRIVATE("Promise#debug");
38 var $Promise = function Promise(resolver) {
43 var promise = PromiseInit(this);
45 %DebugPushPromise(promise);
46 resolver(function(x) { PromiseResolve(promise, x) },
47 function(r) { PromiseReject(promise, r) });
49 PromiseReject(promise, e);
57 function PromiseSet(promise, status, value, onResolve, onReject) {
58 SET_PRIVATE(promise, promiseStatus, status);
59 SET_PRIVATE(promise, promiseValue, value);
60 SET_PRIVATE(promise, promiseOnResolve, onResolve);
61 SET_PRIVATE(promise, promiseOnReject, onReject);
63 %DebugPromiseEvent({ promise: promise, status: status, value: value });
65 return promise;
68 function PromiseInit(promise) {
70 promise, 0, UNDEFINED, new InternalArray, new InternalArray)
73 function PromiseDone(promise, status, value, promiseQueue) {
74 if (GET_PRIVATE(promise, promiseStatus) === 0) {
75 PromiseEnqueue(value, GET_PRIVATE(promise, promiseQueue), status);
76 PromiseSet(promise, status, value);
95 return deferred.promise;
103 %DebugPushPromise(deferred.promise);
105 if (result === deferred.promise)
133 name = status > 0 ? "Promise.resolve" : "Promise.reject";
153 return new $Promise(PromiseNopResolver)
156 PromiseResolve = function PromiseResolve(promise, x) {
157 PromiseDone(promise, +1, x, promiseOnResolve)
160 PromiseReject = function PromiseReject(promise, r) {
161 // Check promise status to confirm that this reject has an effect.
164 GET_PRIVATE(promise, promiseStatus) == 0 &&
165 !HAS_DEFINED_PRIVATE(promise, promiseDebug)) {
166 %DebugPromiseRejectEvent(promise, r);
168 PromiseDone(promise, -1, r, promiseOnReject)
174 if (this === $Promise) {
176 var promise = PromiseInit(new $Promise(promiseRaw));
178 promise: promise,
179 resolve: function(x) { PromiseResolve(promise, x) },
180 reject: function(r) { PromiseReject(promise, r) }
184 result.promise = new this(function(resolve, reject) {
193 if (this === $Promise) {
195 return PromiseSet(new $Promise(promiseRaw), +1, x);
202 if (this === $Promise) {
204 return PromiseSet(new $Promise(promiseRaw), -1, r);
236 %DebugPromiseEvent({ promise: deferred.promise, parentPromise: this });
238 return deferred.promise;
278 return deferred.promise;
303 return deferred.promise;
310 return deferred.promise;
322 return deferred.promise;
328 function PromiseHasRejectHandlerRecursive(promise) {
329 var queue = GET_PRIVATE(promise, promiseOnReject);
335 if (PromiseHasRejectHandlerRecursive(queue[i + 1].promise)) return true;
341 // Mark promise as already having triggered a reject event.
350 %AddNamedProperty(global, 'Promise', $Promise, DONT_ENUM);
351 InstallFunctions($Promise, DONT_ENUM, [
359 InstallFunctions($Promise.prototype, DONT_ENUM, [