| Index: src/compiler/property-access-info.h
|
| diff --git a/src/compiler/property-access-info.h b/src/compiler/property-access-info.h
|
| index 427a6b0ce22a18eac56076c6b16a2c2decef3a5d..54ea1abda2ded1d95cc6543526e536c5a8c0b311 100644
|
| --- a/src/compiler/property-access-info.h
|
| +++ b/src/compiler/property-access-info.h
|
| @@ -32,26 +32,26 @@ std::ostream& operator<<(std::ostream&, PropertyAccessMode);
|
| // object property, either on the object itself or on the prototype chain.
|
| class PropertyAccessInfo final {
|
| public:
|
| - enum Kind { kInvalid, kDataConstant, kDataField };
|
| + enum Kind { kInvalid, kNotFound, kDataConstant, kDataField };
|
|
|
| + static PropertyAccessInfo NotFound(Type* receiver_type,
|
| + MaybeHandle<JSObject> holder);
|
| static PropertyAccessInfo DataConstant(Type* receiver_type,
|
| Handle<Object> constant,
|
| - MaybeHandle<JSObject> holder) {
|
| - return PropertyAccessInfo(holder, constant, receiver_type);
|
| - }
|
| + MaybeHandle<JSObject> holder);
|
| static PropertyAccessInfo DataField(
|
| Type* receiver_type, FieldIndex field_index, Type* field_type,
|
| MaybeHandle<JSObject> holder = MaybeHandle<JSObject>(),
|
| - MaybeHandle<Map> transition_map = MaybeHandle<Map>()) {
|
| - return PropertyAccessInfo(holder, transition_map, field_index, field_type,
|
| - receiver_type);
|
| - }
|
| + MaybeHandle<Map> transition_map = MaybeHandle<Map>());
|
|
|
| PropertyAccessInfo();
|
|
|
| + bool IsNotFound() const { return kind() == kNotFound; }
|
| bool IsDataConstant() const { return kind() == kDataConstant; }
|
| bool IsDataField() const { return kind() == kDataField; }
|
|
|
| + bool HasTransitionMap() const { return !transition_map().is_null(); }
|
| +
|
| Kind kind() const { return kind_; }
|
| MaybeHandle<JSObject> holder() const { return holder_; }
|
| MaybeHandle<Map> transition_map() const { return transition_map_; }
|
| @@ -60,9 +60,8 @@ class PropertyAccessInfo final {
|
| Type* field_type() const { return field_type_; }
|
| Type* receiver_type() const { return receiver_type_; }
|
|
|
| - bool HasTransitionMap() const { return !transition_map().is_null(); }
|
| -
|
| private:
|
| + PropertyAccessInfo(MaybeHandle<JSObject> holder, Type* receiver_type);
|
| PropertyAccessInfo(MaybeHandle<JSObject> holder, Handle<Object> constant,
|
| Type* receiver_type);
|
| PropertyAccessInfo(MaybeHandle<JSObject> holder,
|
|
|