Chromium Code Reviews| Index: src/ast.h |
| diff --git a/src/ast.h b/src/ast.h |
| index 60f0068d37aebe855c31c352469af4d9ca058bf5..74c0194f8d9ba5a741fed7fe8151aa0f979551b7 100644 |
| --- a/src/ast.h |
| +++ b/src/ast.h |
| @@ -2204,16 +2204,26 @@ class Spread final : public Expression { |
| Expression* expression() const { return expression_; } |
| + int literal_index() const { |
| + DCHECK(literal_index_ >= 0); |
| + return literal_index_; |
| + } |
| + |
| static int num_ids() { return parent_num_ids(); } |
| protected: |
| - Spread(Zone* zone, Expression* expression, int pos) |
| - : Expression(zone, pos), expression_(expression) {} |
| + Spread(Zone* zone, Expression* expression, int literal_index, int pos) |
| + : Expression(zone, pos), |
| + literal_index_(literal_index), |
| + expression_(expression) {} |
| static int parent_num_ids() { return Expression::num_ids(); } |
| private: |
| int local_id(int n) const { return base_id() + parent_num_ids() + n; } |
| + // Literal index is only used when Spread is renterpreted as a pattern. |
|
rossberg
2015/05/20 12:57:35
Nit: typo
Dmitry Lomov (no reviews)
2015/05/20 14:22:02
Undid this change.
|
| + int literal_index_; |
| + |
| Expression* expression_; |
| }; |
| @@ -3424,8 +3434,8 @@ class AstNodeFactory final BASE_EMBEDDED { |
| return new (zone_) CompareOperation(zone_, op, left, right, pos); |
| } |
| - Spread* NewSpread(Expression* expression, int pos) { |
| - return new (zone_) Spread(zone_, expression, pos); |
| + Spread* NewSpread(Expression* expression, int literal_index, int pos) { |
| + return new (zone_) Spread(zone_, expression, literal_index, pos); |
| } |
| Conditional* NewConditional(Expression* condition, |