Index: src/ast/ast.h |
diff --git a/src/ast/ast.h b/src/ast/ast.h |
index 7f00955a644fcaeeeca1be192c67a5afa7ec0b70..54b5c4eca782ff616259a0bcce409b46dcf6fa0e 100644 |
--- a/src/ast/ast.h |
+++ b/src/ast/ast.h |
@@ -1683,6 +1683,19 @@ class ArrayLiteral final : public MaterializedLiteral { |
return flags; |
} |
+ // Provide a mechanism for iterating through values to rewrite spreads. |
+ ZoneList<Expression*>::iterator FirstSpread() const { |
+ return (first_spread_index_ >= 0) ? values_->begin() + first_spread_index_ |
+ : values_->end(); |
+ } |
+ ZoneList<Expression*>::iterator EndValue() const { return values_->end(); } |
+ |
+ // Rewind an array literal omitting everything from the first spread on. |
+ void RewindSpreads() { |
+ values_->Rewind(first_spread_index_); |
+ first_spread_index_ = -1; |
+ } |
+ |
enum Flags { |
kNoFlags = 0, |
kShallowElements = 1, |