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

Unified Diff: src/builtins/builtins-async.cc

Issue 2643023002: [async-await] Move remaining async-await code to TF (Closed)
Patch Set: Typo Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: src/builtins/builtins-async.cc
diff --git a/src/builtins/builtins-async.cc b/src/builtins/builtins-async.cc
index 061ab535aa98a8c98f40d4e930ff7072664d4f76..b6eec2ed6d8ba8bf7242fdba68b042bea034e11a 100644
--- a/src/builtins/builtins-async.cc
+++ b/src/builtins/builtins-async.cc
@@ -15,7 +15,7 @@ namespace internal {
Node* AsyncBuiltinsAssembler::Await(
Node* context, Node* generator, Node* value, Node* outer_promise,
const NodeGenerator1& create_closure_context, int on_resolve_context_index,
- int on_reject_context_index, bool is_catchable) {
+ int on_reject_context_index, bool is_predicted_as_caught) {
// Let promiseCapability be ! NewPromiseCapability(%Promise%).
Node* const wrapped_value = AllocateAndInitJSPromise(context);
@@ -55,18 +55,17 @@ Node* AsyncBuiltinsAssembler::Await(
GotoUnless(IsDebugActive(), &do_perform_promise_then);
{
Label common(this);
+ GotoIf(TaggedIsSmi(value), &common);
GotoUnless(HasInstanceType(value, JS_PROMISE_TYPE), &common);
{
// Mark the reject handler callback to be a forwarding edge, rather
// than a meaningful catch handler
Node* const key =
HeapConstant(factory()->promise_forwarding_handler_symbol());
- CallRuntime(Runtime::kSetProperty, on_reject, key, TrueConstant(),
- SmiConstant(STRICT));
+ CallRuntime(Runtime::kSetProperty, context, on_reject, key,
+ TrueConstant(), SmiConstant(STRICT));
- if (!is_catchable) {
- PromiseSetHasHandler(value);
- }
+ if (is_predicted_as_caught) PromiseSetHandledHint(value);
}
Goto(&common);
@@ -76,8 +75,8 @@ Node* AsyncBuiltinsAssembler::Await(
CSA_SLOW_ASSERT(this, HasInstanceType(outer_promise, JS_PROMISE_TYPE));
Node* const key = HeapConstant(factory()->promise_handled_by_symbol());
- CallRuntime(Runtime::kSetProperty, throwaway_promise, key, outer_promise,
- SmiConstant(STRICT));
+ CallRuntime(Runtime::kSetProperty, context, throwaway_promise, key,
+ outer_promise, SmiConstant(STRICT));
}
Goto(&do_perform_promise_then);

Powered by Google App Engine
This is Rietveld 408576698