| Index: src/full-codegen/full-codegen.cc
|
| diff --git a/src/full-codegen/full-codegen.cc b/src/full-codegen/full-codegen.cc
|
| index 063f3167939e156484ae3c500ca022e6a87f7c9c..5e9a714a67963565d8e3af5339ec8b150931eac1 100644
|
| --- a/src/full-codegen/full-codegen.cc
|
| +++ b/src/full-codegen/full-codegen.cc
|
| @@ -745,6 +745,25 @@ void FullCodeGenerator::VisitBlock(Block* stmt) {
|
| }
|
|
|
|
|
| +void FullCodeGenerator::VisitDoExpression(DoExpression* expr) {
|
| + Comment cmnt(masm_, "[ Do Expression");
|
| + NestedStatement nested_block(this);
|
| + SetExpressionPosition(expr);
|
| +
|
| + {
|
| + EnterBlockScopeIfNeeded block_scope_state(
|
| + this, expr->scope(), expr->EntryId(), expr->DeclsId(), expr->ExitId());
|
| + VisitStatements(expr->statements());
|
| + Comment cmnt(masm_, "[ Completion");
|
| + if (expr->result()->is_assigned()) {
|
| + EmitVariableLoad(expr->result());
|
| + } else {
|
| + context()->Plug(isolate()->factory()->undefined_value());
|
| + }
|
| + }
|
| +}
|
| +
|
| +
|
| void FullCodeGenerator::VisitExpressionStatement(ExpressionStatement* stmt) {
|
| Comment cmnt(masm_, "[ ExpressionStatement");
|
| SetStatementPosition(stmt);
|
|
|