Index: src/interpreter/bytecode-label.h |
diff --git a/src/interpreter/bytecode-label.h b/src/interpreter/bytecode-label.h |
index 2f89c4806d96c60c2aa455ebab2525bd80a21a9e..f10a8638a494af6b4554b148f963f89d06b33109 100644 |
--- a/src/interpreter/bytecode-label.h |
+++ b/src/interpreter/bytecode-label.h |
@@ -5,10 +5,14 @@ |
#ifndef V8_INTERPRETER_BYTECODE_LABEL_H_ |
#define V8_INTERPRETER_BYTECODE_LABEL_H_ |
+#include "src/zone-containers.h" |
+ |
namespace v8 { |
namespace internal { |
namespace interpreter { |
+class BytecodeArrayBuilder; |
+ |
// A label representing a branch target in a bytecode array. When a |
// label is bound, it represents a known position in the bytecode |
// array. For labels that are forward references there can be at most |
@@ -49,6 +53,21 @@ class BytecodeLabel final { |
friend class BytecodeArrayWriter; |
}; |
+// Class representing a branch target of multiple jumps. |
+class BytecodeLabels { |
+ public: |
+ explicit BytecodeLabels(Zone* zone) : labels_(zone) {} |
+ |
+ BytecodeLabel* New(); |
+ |
+ void Bind(BytecodeArrayBuilder* builder); |
+ |
+ private: |
+ ZoneVector<BytecodeLabel> labels_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(BytecodeLabels); |
+}; |
+ |
} // namespace interpreter |
} // namespace internal |
} // namespace v8 |