Index: src/interpreter/control-flow-builders.h |
diff --git a/src/interpreter/control-flow-builders.h b/src/interpreter/control-flow-builders.h |
index c92fab20991511b90c0596e8fa6bd8db830a2e32..3ef800c1cfe78a195f1d88b62f5e512f8ec86c54 100644 |
--- a/src/interpreter/control-flow-builders.h |
+++ b/src/interpreter/control-flow-builders.h |
@@ -49,11 +49,20 @@ class LoopBuilder : public ControlFlowBuilder { |
// patched when the corresponding SetContinueTarget/SetBreakTarget |
// is called. |
void Break() { EmitJump(&break_sites_); } |
+ void BreakIfTrue() { EmitJumpIfTrue(&break_sites_); } |
+ void BreakIfUndefined() { EmitJumpIfUndefined(&break_sites_); } |
+ void BreakIfNull() { EmitJumpIfNull(&break_sites_); } |
void Continue() { EmitJump(&continue_sites_); } |
+ void ContinueIfTrue() { EmitJumpIfTrue(&continue_sites_); } |
+ void ContinueIfUndefined() { EmitJumpIfUndefined(&continue_sites_); } |
+ void ContinueIfNull() { EmitJumpIfNull(&continue_sites_); } |
private: |
void BindLabels(const BytecodeLabel& target, ZoneVector<BytecodeLabel>* site); |
void EmitJump(ZoneVector<BytecodeLabel>* labels); |
+ void EmitJumpIfTrue(ZoneVector<BytecodeLabel>* labels); |
+ void EmitJumpIfUndefined(ZoneVector<BytecodeLabel>* labels); |
+ void EmitJumpIfNull(ZoneVector<BytecodeLabel>* labels); |
// Unbound labels that identify jumps for continue/break statements |
// in the code. |