Chromium Code Reviews| Index: src/ast.h |
| diff --git a/src/ast.h b/src/ast.h |
| index d7119239c78355de4ac1c97fcbe255847c36d4fe..b74104db9253f2be25c59b4309277d53a4d7844f 100644 |
| --- a/src/ast.h |
| +++ b/src/ast.h |
| @@ -1786,8 +1786,7 @@ class Property FINAL : public Expression { |
| return STANDARD_STORE; |
| } |
| virtual IcCheckType GetKeyType() const OVERRIDE { |
| - // PROPERTY key types currently aren't implemented for KeyedLoadICs. |
| - return ELEMENT; |
| + return KeyTypeField::decode(bit_field_); |
| } |
| bool IsUninitialized() const { |
| return !is_for_call() && HasNoTypeInformation(); |
| @@ -1801,6 +1800,9 @@ class Property FINAL : public Expression { |
| void set_is_string_access(bool b) { |
| bit_field_ = IsStringAccessField::update(bit_field_, b); |
| } |
| + void set_key_type(IcCheckType key_type) { |
| + bit_field_ = KeyTypeField::update(bit_field_, key_type); |
| + } |
| void mark_for_call() { |
| bit_field_ = IsForCallField::update(bit_field_, true); |
| } |
| @@ -1838,6 +1840,7 @@ class Property FINAL : public Expression { |
| class IsForCallField : public BitField8<bool, 0, 1> {}; |
| class IsUninitializedField : public BitField8<bool, 1, 1> {}; |
| class IsStringAccessField : public BitField8<bool, 2, 1> {}; |
| + class KeyTypeField : public BitField16<IcCheckType, 3, 1> {}; |
|
Jakob Kummerow
2014/12/10 15:21:18
This must be a BitField8!
|
| uint8_t bit_field_; |
| FeedbackVectorICSlot property_feedback_slot_; |
| Expression* obj_; |