Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: src/promise.js

Issue 1118273004: Migrate error messages, part 8. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/messages.js ('k') | src/proxy.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var $promiseCreate; 5 var $promiseCreate;
6 var $promiseResolve; 6 var $promiseResolve;
7 var $promiseReject; 7 var $promiseReject;
8 var $promiseChain; 8 var $promiseChain;
9 var $promiseCatch; 9 var $promiseCatch;
10 var $promiseThen; 10 var $promiseThen;
(...skipping 13 matching lines...) Expand all
24 var promiseStatus = GLOBAL_PRIVATE("Promise#status"); 24 var promiseStatus = GLOBAL_PRIVATE("Promise#status");
25 var promiseValue = GLOBAL_PRIVATE("Promise#value"); 25 var promiseValue = GLOBAL_PRIVATE("Promise#value");
26 var promiseOnResolve = GLOBAL_PRIVATE("Promise#onResolve"); 26 var promiseOnResolve = GLOBAL_PRIVATE("Promise#onResolve");
27 var promiseOnReject = GLOBAL_PRIVATE("Promise#onReject"); 27 var promiseOnReject = GLOBAL_PRIVATE("Promise#onReject");
28 var promiseRaw = GLOBAL_PRIVATE("Promise#raw"); 28 var promiseRaw = GLOBAL_PRIVATE("Promise#raw");
29 var promiseHasHandler = %PromiseHasHandlerSymbol(); 29 var promiseHasHandler = %PromiseHasHandlerSymbol();
30 var lastMicrotaskId = 0; 30 var lastMicrotaskId = 0;
31 31
32 var GlobalPromise = function Promise(resolver) { 32 var GlobalPromise = function Promise(resolver) {
33 if (resolver === promiseRaw) return; 33 if (resolver === promiseRaw) return;
34 if (!%_IsConstructCall()) throw MakeTypeError('not_a_promise', [this]); 34 if (!%_IsConstructCall()) throw MakeTypeError(kNotAPromise, this);
35 if (!IS_SPEC_FUNCTION(resolver)) 35 if (!IS_SPEC_FUNCTION(resolver))
36 throw MakeTypeError('resolver_not_a_function', [resolver]); 36 throw MakeTypeError(kResolverNotAFunction, resolver);
37 var promise = PromiseInit(this); 37 var promise = PromiseInit(this);
38 try { 38 try {
39 %DebugPushPromise(promise, Promise); 39 %DebugPushPromise(promise, Promise);
40 resolver(function(x) { PromiseResolve(promise, x) }, 40 resolver(function(x) { PromiseResolve(promise, x) },
41 function(r) { PromiseReject(promise, r) }); 41 function(r) { PromiseReject(promise, r) });
42 } catch (e) { 42 } catch (e) {
43 PromiseReject(promise, e); 43 PromiseReject(promise, e);
44 } finally { 44 } finally {
45 %DebugPopPromise(); 45 %DebugPopPromise();
46 } 46 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 } 99 }
100 return x; 100 return x;
101 } 101 }
102 102
103 function PromiseHandle(value, handler, deferred) { 103 function PromiseHandle(value, handler, deferred) {
104 try { 104 try {
105 %DebugPushPromise(deferred.promise, PromiseHandle); 105 %DebugPushPromise(deferred.promise, PromiseHandle);
106 DEBUG_PREPARE_STEP_IN_IF_STEPPING(handler); 106 DEBUG_PREPARE_STEP_IN_IF_STEPPING(handler);
107 var result = handler(value); 107 var result = handler(value);
108 if (result === deferred.promise) 108 if (result === deferred.promise)
109 throw MakeTypeError('promise_cyclic', [result]); 109 throw MakeTypeError(kPromiseCyclic, result);
110 else if (IsPromise(result)) 110 else if (IsPromise(result))
111 %_CallFunction(result, deferred.resolve, deferred.reject, PromiseChain); 111 %_CallFunction(result, deferred.resolve, deferred.reject, PromiseChain);
112 else 112 else
113 deferred.resolve(result); 113 deferred.resolve(result);
114 } catch (exception) { 114 } catch (exception) {
115 try { deferred.reject(exception); } catch (e) { } 115 try { deferred.reject(exception); } catch (e) { }
116 } finally { 116 } finally {
117 %DebugPopPromise(); 117 %DebugPopPromise();
118 } 118 }
119 } 119 }
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 } 217 }
218 218
219 // Simple chaining. 219 // Simple chaining.
220 220
221 function PromiseChain(onResolve, onReject) { // a.k.a. flatMap 221 function PromiseChain(onResolve, onReject) { // a.k.a. flatMap
222 onResolve = IS_UNDEFINED(onResolve) ? PromiseIdResolveHandler : onResolve; 222 onResolve = IS_UNDEFINED(onResolve) ? PromiseIdResolveHandler : onResolve;
223 onReject = IS_UNDEFINED(onReject) ? PromiseIdRejectHandler : onReject; 223 onReject = IS_UNDEFINED(onReject) ? PromiseIdRejectHandler : onReject;
224 var deferred = %_CallFunction(this.constructor, PromiseDeferred); 224 var deferred = %_CallFunction(this.constructor, PromiseDeferred);
225 switch (GET_PRIVATE(this, promiseStatus)) { 225 switch (GET_PRIVATE(this, promiseStatus)) {
226 case UNDEFINED: 226 case UNDEFINED:
227 throw MakeTypeError('not_a_promise', [this]); 227 throw MakeTypeError(kNotAPromise, this);
228 case 0: // Pending 228 case 0: // Pending
229 GET_PRIVATE(this, promiseOnResolve).push(onResolve, deferred); 229 GET_PRIVATE(this, promiseOnResolve).push(onResolve, deferred);
230 GET_PRIVATE(this, promiseOnReject).push(onReject, deferred); 230 GET_PRIVATE(this, promiseOnReject).push(onReject, deferred);
231 break; 231 break;
232 case +1: // Resolved 232 case +1: // Resolved
233 PromiseEnqueue(GET_PRIVATE(this, promiseValue), 233 PromiseEnqueue(GET_PRIVATE(this, promiseValue),
234 [onResolve, deferred], 234 [onResolve, deferred],
235 +1); 235 +1);
236 break; 236 break;
237 case -1: // Rejected 237 case -1: // Rejected
(...skipping 27 matching lines...) Expand all
265 onReject = IS_SPEC_FUNCTION(onReject) ? onReject 265 onReject = IS_SPEC_FUNCTION(onReject) ? onReject
266 : PromiseIdRejectHandler; 266 : PromiseIdRejectHandler;
267 var that = this; 267 var that = this;
268 var constructor = this.constructor; 268 var constructor = this.constructor;
269 return %_CallFunction( 269 return %_CallFunction(
270 this, 270 this,
271 function(x) { 271 function(x) {
272 x = PromiseCoerce(constructor, x); 272 x = PromiseCoerce(constructor, x);
273 if (x === that) { 273 if (x === that) {
274 DEBUG_PREPARE_STEP_IN_IF_STEPPING(onReject); 274 DEBUG_PREPARE_STEP_IN_IF_STEPPING(onReject);
275 return onReject(MakeTypeError('promise_cyclic', [x])); 275 return onReject(MakeTypeError(kPromiseCyclic, x));
276 } else if (IsPromise(x)) { 276 } else if (IsPromise(x)) {
277 return x.then(onResolve, onReject); 277 return x.then(onResolve, onReject);
278 } else { 278 } else {
279 DEBUG_PREPARE_STEP_IN_IF_STEPPING(onResolve); 279 DEBUG_PREPARE_STEP_IN_IF_STEPPING(onResolve);
280 return onResolve(x); 280 return onResolve(x);
281 } 281 }
282 }, 282 },
283 onReject, 283 onReject,
284 PromiseChain 284 PromiseChain
285 ); 285 );
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 $promiseResolve = PromiseResolve; 385 $promiseResolve = PromiseResolve;
386 $promiseReject = PromiseReject; 386 $promiseReject = PromiseReject;
387 $promiseChain = PromiseChain; 387 $promiseChain = PromiseChain;
388 $promiseCatch = PromiseCatch; 388 $promiseCatch = PromiseCatch;
389 $promiseThen = PromiseThen; 389 $promiseThen = PromiseThen;
390 $promiseHasUserDefinedRejectHandler = PromiseHasUserDefinedRejectHandler; 390 $promiseHasUserDefinedRejectHandler = PromiseHasUserDefinedRejectHandler;
391 $promiseStatus = promiseStatus; 391 $promiseStatus = promiseStatus;
392 $promiseValue = promiseValue; 392 $promiseValue = promiseValue;
393 393
394 })(); 394 })();
OLDNEW
« no previous file with comments | « src/messages.js ('k') | src/proxy.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698