Index: src/interpreter/bytecode-array-builder.h |
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h |
index 8def1eb1434672ca68e7ce68179a0ee39726515f..33447af4fc5c376c0f0bc95559948496c678bae9 100644 |
--- a/src/interpreter/bytecode-array-builder.h |
+++ b/src/interpreter/bytecode-array-builder.h |
@@ -27,9 +27,11 @@ class Register; |
// when rest parameters implementation has settled down. |
enum class CreateArgumentsType { kMappedArguments, kUnmappedArguments }; |
-class BytecodeArrayBuilder { |
+class BytecodeArrayBuilder final { |
public: |
BytecodeArrayBuilder(Isolate* isolate, Zone* zone); |
+ ~BytecodeArrayBuilder(); |
+ |
Handle<BytecodeArray> ToBytecodeArray(); |
// Set the number of parameters expected by function. |
@@ -211,9 +213,12 @@ class BytecodeArrayBuilder { |
BytecodeArrayBuilder& Return(); |
// Complex flow control. |
- BytecodeArrayBuilder& ForInPrepare(Register receiver); |
- BytecodeArrayBuilder& ForInNext(Register for_in_state, Register index); |
- BytecodeArrayBuilder& ForInDone(Register for_in_state); |
+ BytecodeArrayBuilder& ForInPrepare(Register cache_type, Register cache_array, |
+ Register cache_length); |
+ BytecodeArrayBuilder& ForInDone(Register index, Register cache_length); |
+ BytecodeArrayBuilder& ForInNext(Register receiver, Register cache_type, |
+ Register cache_array, Register index); |
+ BytecodeArrayBuilder& ForInStep(Register index); |
// Accessors |
Zone* zone() const { return zone_; } |
@@ -288,6 +293,7 @@ class BytecodeArrayBuilder { |
size_t last_block_end_; |
size_t last_bytecode_start_; |
bool exit_seen_in_block_; |
+ int unbound_jumps_; |
IdentityMap<size_t> constants_map_; |
ZoneVector<Handle<Object>> constants_; |