| Index: src/ast/ast-numbering.cc
 | 
| diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
 | 
| index bc401e6d1c5cf55db1cea61318c955a5fd49009b..bd960264149e46013c621c06ee1c16612ce8ea8a 100644
 | 
| --- a/src/ast/ast-numbering.cc
 | 
| +++ b/src/ast/ast-numbering.cc
 | 
| @@ -72,17 +72,6 @@ class AstNumberingVisitor final : public AstVisitor {
 | 
|  
 | 
|    BailoutReason dont_optimize_reason() const { return dont_optimize_reason_; }
 | 
|  
 | 
| -  int GetAndResetYieldCount() {
 | 
| -    int old_yield_count = yield_count_;
 | 
| -    yield_count_ = 0;
 | 
| -    return old_yield_count;
 | 
| -  }
 | 
| -
 | 
| -  void StoreAndUpdateYieldCount(IterationStatement* node, int old_yield_count) {
 | 
| -    node->set_yield_count(yield_count_);
 | 
| -    yield_count_ += old_yield_count;
 | 
| -  }
 | 
| -
 | 
|    Isolate* isolate_;
 | 
|    Zone* zone_;
 | 
|    int next_id_;
 | 
| @@ -228,6 +217,7 @@ void AstNumberingVisitor::VisitReturnStatement(ReturnStatement* node) {
 | 
|  
 | 
|  
 | 
|  void AstNumberingVisitor::VisitYield(Yield* node) {
 | 
| +  node->set_yield_id(yield_count_);
 | 
|    yield_count_++;
 | 
|    IncrementNodeCount();
 | 
|    DisableOptimization(kYield);
 | 
| @@ -296,10 +286,10 @@ void AstNumberingVisitor::VisitDoWhileStatement(DoWhileStatement* node) {
 | 
|    IncrementNodeCount();
 | 
|    DisableSelfOptimization();
 | 
|    node->set_base_id(ReserveIdRange(DoWhileStatement::num_ids()));
 | 
| -  int old_yield_count = GetAndResetYieldCount();
 | 
| +  node->set_first_yield_id(yield_count_);
 | 
|    Visit(node->body());
 | 
|    Visit(node->cond());
 | 
| -  StoreAndUpdateYieldCount(node, old_yield_count);
 | 
| +  node->set_yield_count(yield_count_ - node->first_yield_id());
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -307,10 +297,10 @@ void AstNumberingVisitor::VisitWhileStatement(WhileStatement* node) {
 | 
|    IncrementNodeCount();
 | 
|    DisableSelfOptimization();
 | 
|    node->set_base_id(ReserveIdRange(WhileStatement::num_ids()));
 | 
| -  int old_yield_count = GetAndResetYieldCount();
 | 
| +  node->set_first_yield_id(yield_count_);
 | 
|    Visit(node->cond());
 | 
|    Visit(node->body());
 | 
| -  StoreAndUpdateYieldCount(node, old_yield_count);
 | 
| +  node->set_yield_count(yield_count_ - node->first_yield_id());
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -394,10 +384,10 @@ void AstNumberingVisitor::VisitForInStatement(ForInStatement* node) {
 | 
|    DisableSelfOptimization();
 | 
|    node->set_base_id(ReserveIdRange(ForInStatement::num_ids()));
 | 
|    Visit(node->enumerable());  // Not part of loop.
 | 
| -  int old_yield_count = GetAndResetYieldCount();
 | 
| +  node->set_first_yield_id(yield_count_);
 | 
|    Visit(node->each());
 | 
|    Visit(node->body());
 | 
| -  StoreAndUpdateYieldCount(node, old_yield_count);
 | 
| +  node->set_yield_count(yield_count_ - node->first_yield_id());
 | 
|    ReserveFeedbackSlots(node);
 | 
|  }
 | 
|  
 | 
| @@ -407,12 +397,12 @@ void AstNumberingVisitor::VisitForOfStatement(ForOfStatement* node) {
 | 
|    DisableCrankshaft(kForOfStatement);
 | 
|    node->set_base_id(ReserveIdRange(ForOfStatement::num_ids()));
 | 
|    Visit(node->assign_iterator());  // Not part of loop.
 | 
| -  int old_yield_count = GetAndResetYieldCount();
 | 
| +  node->set_first_yield_id(yield_count_);
 | 
|    Visit(node->next_result());
 | 
|    Visit(node->result_done());
 | 
|    Visit(node->assign_each());
 | 
|    Visit(node->body());
 | 
| -  StoreAndUpdateYieldCount(node, old_yield_count);
 | 
| +  node->set_yield_count(yield_count_ - node->first_yield_id());
 | 
|    ReserveFeedbackSlots(node);
 | 
|  }
 | 
|  
 | 
| @@ -461,11 +451,11 @@ void AstNumberingVisitor::VisitForStatement(ForStatement* node) {
 | 
|    DisableSelfOptimization();
 | 
|    node->set_base_id(ReserveIdRange(ForStatement::num_ids()));
 | 
|    if (node->init() != NULL) Visit(node->init());  // Not part of loop.
 | 
| -  int old_yield_count = GetAndResetYieldCount();
 | 
| +  node->set_first_yield_id(yield_count_);
 | 
|    if (node->cond() != NULL) Visit(node->cond());
 | 
|    if (node->next() != NULL) Visit(node->next());
 | 
|    Visit(node->body());
 | 
| -  StoreAndUpdateYieldCount(node, old_yield_count);
 | 
| +  node->set_yield_count(yield_count_ - node->first_yield_id());
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |