Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: src/interpreter/bytecode-array-builder.h

Issue 1531693002: [Interpreter] Implement ForIn in bytecode graph builder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@oth-0009-phi
Patch Set: Minor clean-up/simplication in Runtime_InterpreterForInPrepare. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/bytecode-graph-builder.cc ('k') | src/interpreter/bytecode-array-builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
« no previous file with comments | « src/compiler/bytecode-graph-builder.cc ('k') | src/interpreter/bytecode-array-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698