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

Unified Diff: src/js/promise.js

Issue 2459283004: [promises] Move CreateResolvingFunctions to c++ (Closed)
Patch Set: fix test Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« src/heap-symbols.h ('K') | « src/js/async-await.js ('k') | src/v8.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/js/promise.js
diff --git a/src/js/promise.js b/src/js/promise.js
index 75ec6e1c57683f56c9107e5f8754590b532c46d3..47d07e4ba484a8a09697c651efd71205a31ef3a9 100644
--- a/src/js/promise.js
+++ b/src/js/promise.js
@@ -52,30 +52,7 @@ const kRejected = +2;
// ES#sec-createresolvingfunctions
// CreateResolvingFunctions ( promise )
function CreateResolvingFunctions(promise, debugEvent) {
adamk 2016/11/08 18:09:55 Why do we still need this wrapper function?
gsathya 2016/11/08 20:03:19 Done.
- var alreadyResolved = false;
-
- // ES#sec-promise-resolve-functions
- // Promise Resolve Functions
- var resolve = value => {
- if (alreadyResolved === true) return;
- alreadyResolved = true;
- ResolvePromise(promise, value);
- };
-
- // ES#sec-promise-reject-functions
- // Promise Reject Functions
- var reject = reason => {
- if (alreadyResolved === true) return;
- alreadyResolved = true;
- %PromiseReject(promise, reason, debugEvent);
- PromiseSet(promise, kRejected, reason);
- };
-
- return {
- __proto__: null,
- resolve: resolve,
- reject: reject
- };
+ return %create_resolving_functions(promise, debugEvent);
}
@@ -307,8 +284,8 @@ function ResolvePromise(promise, resolution) {
}
// Only used by async-await.js
-function RejectPromise(promise, reason) {
- %PromiseReject(promise, reason, false);
+function RejectPromise(promise, reason, debugEvent) {
+ %PromiseReject(promise, reason, debugEvent);
PromiseSet(promise, kRejected, reason);
}
@@ -643,6 +620,8 @@ utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [
"promise_create", PromiseCreate,
"promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler,
"promise_reject", DoRejectPromise,
+ //TODO(gsathya): Remove this once we update the promise builtin.
+ "promise_internal_reject", RejectPromise,
"promise_resolve", ResolvePromise,
"promise_then", PromiseThen,
"promise_handle", PromiseHandle,
« src/heap-symbols.h ('K') | « src/js/async-await.js ('k') | src/v8.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698