Chromium Code Reviews| Index: src/ast.h |
| diff --git a/src/ast.h b/src/ast.h |
| index 0882b250ffde424f2f86925d1416c4fa54288f54..fb19e8e09bf98b2b58c048edc7b60f7607070875 100644 |
| --- a/src/ast.h |
| +++ b/src/ast.h |
| @@ -1447,12 +1447,14 @@ class ObjectLiteralProperty V8_FINAL : public ZoneObject { |
| COMPUTED, // Property with computed value (execution time). |
| MATERIALIZED_LITERAL, // Property value is a materialized literal. |
| GETTER, SETTER, // Property is an accessor function. |
| - PROTOTYPE // Property is __proto__. |
| + PROTOTYPE, // Property is __proto__. |
| + COMPUTED_NAME // Property with computed name. |
| }; |
| - ObjectLiteralProperty(Zone* zone, Literal* key, Expression* value); |
| + ObjectLiteralProperty(Zone* zone, Expression* key, Expression* value, |
| + bool is_computed_name); |
|
rossberg
2014/06/13 15:19:24
Is this flag needed? Isn't it implied by the type
wingo
2014/06/16 08:32:27
The flag is needed. ['foo']:42 has a Literal as t
rossberg
2014/06/18 14:13:40
Apparently, it was decided to drop duplicate check
|
| - Literal* key() { return key_; } |
| + Expression* key() { return key_; } |
| Expression* value() { return value_; } |
| Kind kind() { return kind_; } |
| @@ -1470,10 +1472,10 @@ class ObjectLiteralProperty V8_FINAL : public ZoneObject { |
| template<class> friend class AstNodeFactory; |
| ObjectLiteralProperty(Zone* zone, bool is_getter, FunctionLiteral* value); |
| - void set_key(Literal* key) { key_ = key; } |
| + void set_key(Expression* key) { key_ = key; } |
| private: |
| - Literal* key_; |
| + Expression* key_; |
| Expression* value_; |
| Kind kind_; |
| bool emit_store_; |
| @@ -3154,9 +3156,11 @@ class AstNodeFactory V8_FINAL BASE_EMBEDDED { |
| VISIT_AND_RETURN(ObjectLiteral, lit) |
| } |
| - ObjectLiteral::Property* NewObjectLiteralProperty(Literal* key, |
| - Expression* value) { |
| - return new(zone_) ObjectLiteral::Property(zone_, key, value); |
| + ObjectLiteral::Property* NewObjectLiteralProperty(Expression* key, |
| + Expression* value, |
| + bool is_computed_name) { |
| + return new(zone_) ObjectLiteral::Property(zone_, key, value, |
| + is_computed_name); |
| } |
| ObjectLiteral::Property* NewObjectLiteralProperty(bool is_getter, |