| Index: src/interpreter/control-flow-builders.h
 | 
| diff --git a/src/interpreter/control-flow-builders.h b/src/interpreter/control-flow-builders.h
 | 
| index e4d376b9b21e90bdd1121589bcc28d6cc8de4924..3c87e86bd20701d55aaeb4f747d77bbb1340ffcb 100644
 | 
| --- a/src/interpreter/control-flow-builders.h
 | 
| +++ b/src/interpreter/control-flow-builders.h
 | 
| @@ -82,16 +82,22 @@ class BlockBuilder final : public BreakableControlFlowBuilder {
 | 
|  // their loop.
 | 
|  class LoopBuilder final : public BreakableControlFlowBuilder {
 | 
|   public:
 | 
| -  explicit LoopBuilder(BytecodeArrayBuilder* builder)
 | 
| +  explicit LoopBuilder(BytecodeArrayBuilder* builder, int yield_count)
 | 
|        : BreakableControlFlowBuilder(builder),
 | 
| +        yield_count(yield_count),
 | 
|          continue_sites_(builder->zone()) {}
 | 
|    ~LoopBuilder();
 | 
|  
 | 
|    void LoopHeader();
 | 
|    void Condition() { builder()->Bind(&condition_); }
 | 
|    void Next() { builder()->Bind(&next_); }
 | 
| -  void JumpToHeader() { builder()->Jump(&loop_header_); }
 | 
| -  void JumpToHeaderIfTrue() { builder()->JumpIfTrue(&loop_header_); }
 | 
| +  void JumpToHeader();
 | 
| +  void JumpToHeaderIfTrue() {
 | 
| +    BytecodeLabel no_jump;
 | 
| +    builder()->JumpIfFalse(&no_jump);
 | 
| +    JumpToHeader();
 | 
| +    builder()->Bind(&no_jump);
 | 
| +  }
 | 
|    void EndLoop();
 | 
|  
 | 
|    // This method is called when visiting continue statements in the AST.
 | 
| @@ -102,6 +108,9 @@ class LoopBuilder final : public BreakableControlFlowBuilder {
 | 
|    void ContinueIfUndefined() { EmitJumpIfUndefined(&continue_sites_); }
 | 
|    void ContinueIfNull() { EmitJumpIfNull(&continue_sites_); }
 | 
|  
 | 
| +  // Number of yields inside the loop.
 | 
| +  const int yield_count;
 | 
| +
 | 
|   private:
 | 
|    void SetContinueTarget(const BytecodeLabel& continue_target);
 | 
|  
 | 
| 
 |