Chromium Code Reviews
Description[ignition] desugar async functions/generators/modules in BytecodeGenerator
Implements the "port-desugaring-to-Ignition" aspects of
https://codereview.chromium.org/2654423004/ without fixing
the actual bug, and leaving much of the AST desugaring (particularly
the desugaring of ReturnStatement and AwaitExpression) alone. This
should create a way to fix the actual bug with a much smaller change.
The `DeclareGeneratorObjectVar` and `DeclarePromiseVar` methods are
added to Scope to make these variables accessible to the
BytecodeGenerator. They will be removed once the Parser no longer
implements the desugaring of Await, Yield*, and function.sent.
This includes the changes of moving the assignment of a named
FunctionExpression's variable to BytecodeGenerator, and additionally
separating the AST desugaring of non-simple parameters, to allow
BytecodeGenerator to control how and when they are visited (necessary
for putting them inside of a generated try/catch/finally block, as
the case may be).
Finally, some helpers are added to the BytecodeGenerator to allow the
generation of Yield code, and try/catch/finally code without AST
desugaring.
BUG=v8:4280
[email protected], [email protected], [email protected]
Patch Set 1 #Patch Set 2 : -Wunused-variable .v. #Patch Set 3 : remove some declarations for deleted Parser methods, too #Patch Set 4 : clean merge #Patch Set 5 : make it a little easier to read #
Total comments: 20
Patch Set 6 : get rid of lambdas, for better or worse.. #
Total comments: 4
Messages
Total messages: 32 (18 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||