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

Unified Diff: src/parsing/parser.h

Issue 2233923003: Desugar async/await to create the resulting Promise upfront (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: format Created 4 years, 4 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
« no previous file with comments | « src/js/promise.js ('k') | src/parsing/parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/parsing/parser.h
diff --git a/src/parsing/parser.h b/src/parsing/parser.h
index 0e71357f2fcd027f09ba29d4ff948e86d052f36d..3a88b7ae51e5627afb44b3d6e7b2778158160531 100644
--- a/src/parsing/parser.h
+++ b/src/parsing/parser.h
@@ -564,7 +564,7 @@ class Parser : public ParserBase<Parser> {
Block* BuildParameterInitializationBlock(
const ParserFormalParameters& parameters, bool* ok);
- Block* BuildRejectPromiseOnException(Block* block);
+ Block* BuildRejectPromiseOnException(Block* block, bool* ok);
// Consumes the ending }.
ZoneList<Statement*>* ParseEagerFunctionBody(
@@ -658,8 +658,10 @@ class Parser : public ParserBase<Parser> {
void RewriteParameterInitializer(Expression* expr, Scope* scope);
Expression* BuildCreateJSGeneratorObject(int pos, FunctionKind kind);
- Expression* BuildPromiseResolve(Expression* value, int pos);
- Expression* BuildPromiseReject(Expression* value, int pos);
+ Expression* BuildResolvePromise(Expression* value, int pos);
+ Expression* BuildRejectPromise(Expression* value, int pos);
+ VariableProxy* BuildDotPromise();
+ VariableProxy* BuildDotDebugIsActive();
// Generic AST generator for throwing errors from compiled code.
Expression* NewThrowError(Runtime::FunctionId function_id,
@@ -962,7 +964,10 @@ class Parser : public ParserBase<Parser> {
if (parameters.is_simple) return;
auto* init_block = BuildParameterInitializationBlock(parameters, ok);
if (!*ok) return;
- if (is_async) init_block = BuildRejectPromiseOnException(init_block);
+ if (is_async) {
+ init_block = BuildRejectPromiseOnException(init_block, ok);
+ if (!*ok) return;
+ }
if (init_block != nullptr) body->Add(init_block, zone());
}
« no previous file with comments | « src/js/promise.js ('k') | src/parsing/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698