Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index b43e5bfd58e485f21ba62bbb56ef9564dbb360da..368ff81c733996ba36c0a5ab3e5bde7d1ec5f60a 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1467,7 +1467,10 @@ |
PROTOTYPE // Property is __proto__. |
}; |
- Expression* key() { return key_; } |
+ ObjectLiteralProperty(Zone* zone, AstValueFactory* ast_value_factory, |
+ Literal* key, Expression* value, bool is_static); |
+ |
+ Literal* key() { return key_; } |
Expression* value() { return value_; } |
Kind kind() { return kind_; } |
@@ -1482,26 +1485,20 @@ |
bool emit_store(); |
bool is_static() const { return is_static_; } |
- bool is_computed_name() const { return is_computed_name_; } |
protected: |
friend class AstNodeFactory; |
- ObjectLiteralProperty(Zone* zone, AstValueFactory* ast_value_factory, |
- Expression* key, Expression* value, bool is_static, |
- bool is_computed_name); |
- |
- ObjectLiteralProperty(Zone* zone, bool is_getter, Expression* key, |
- FunctionLiteral* value, bool is_static, |
- bool is_computed_name); |
- |
- private: |
- Expression* key_; |
+ ObjectLiteralProperty(Zone* zone, bool is_getter, FunctionLiteral* value, |
+ bool is_static); |
+ void set_key(Literal* key) { key_ = key; } |
+ |
+ private: |
+ Literal* key_; |
Expression* value_; |
Kind kind_; |
bool emit_store_; |
bool is_static_; |
- bool is_computed_name_; |
Handle<Map> receiver_type_; |
}; |
@@ -3377,21 +3374,20 @@ |
boilerplate_properties, has_function, pos); |
} |
- ObjectLiteral::Property* NewObjectLiteralProperty(Expression* key, |
+ ObjectLiteral::Property* NewObjectLiteralProperty(Literal* key, |
Expression* value, |
- bool is_static, |
- bool is_computed_name) { |
- return new (zone_) ObjectLiteral::Property( |
- zone_, ast_value_factory_, key, value, is_static, is_computed_name); |
+ bool is_static) { |
+ return new (zone_) ObjectLiteral::Property(zone_, ast_value_factory_, key, |
+ value, is_static); |
} |
ObjectLiteral::Property* NewObjectLiteralProperty(bool is_getter, |
- Expression* key, |
FunctionLiteral* value, |
- int pos, bool is_static, |
- bool is_computed_name) { |
- return new (zone_) ObjectLiteral::Property(zone_, is_getter, key, value, |
- is_static, is_computed_name); |
+ int pos, bool is_static) { |
+ ObjectLiteral::Property* prop = |
+ new (zone_) ObjectLiteral::Property(zone_, is_getter, value, is_static); |
+ prop->set_key(NewStringLiteral(value->raw_name(), pos)); |
+ return prop; |
} |
RegExpLiteral* NewRegExpLiteral(const AstRawString* pattern, |