Index: src/compiler/control-builders.h |
diff --git a/src/compiler/control-builders.h b/src/compiler/control-builders.h |
index 6ff00be59614378dd8be96943bbe77ba5e35479d..a59dcb699ae24267a842fdcb8b11a518515b8fd3 100644 |
--- a/src/compiler/control-builders.h |
+++ b/src/compiler/control-builders.h |
@@ -63,7 +63,8 @@ class LoopBuilder final : public ControlBuilder { |
: ControlBuilder(builder), |
loop_environment_(nullptr), |
continue_environment_(nullptr), |
- break_environment_(nullptr) {} |
+ break_environment_(nullptr), |
+ assigned_(nullptr) {} |
// Primitive control commands. |
void BeginLoop(BitVector* assigned, bool is_osr = false); |
@@ -74,6 +75,10 @@ class LoopBuilder final : public ControlBuilder { |
// Primitive support for break. |
void Break() final; |
+ // Loop exit support. Used to introduce explicit loop exit control |
+ // node and variable markers. |
+ void ExitLoop(Node** extra_value_to_rename = nullptr); |
+ |
// Compound control commands for conditional break. |
void BreakUnless(Node* condition); |
void BreakWhen(Node* condition); |
@@ -82,6 +87,7 @@ class LoopBuilder final : public ControlBuilder { |
Environment* loop_environment_; // Environment of the loop header. |
Environment* continue_environment_; // Environment after the loop body. |
Environment* break_environment_; // Environment after the loop exits. |
+ BitVector* assigned_; // Assigned values in the environment. |
}; |