OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 4701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4712 // If the accessor in the prototype has the READ_ONLY property attribute, then | 4712 // If the accessor in the prototype has the READ_ONLY property attribute, then |
4713 // a new value is added to the local object when the property is set. | 4713 // a new value is added to the local object when the property is set. |
4714 // This shadows the accessor in the prototype. | 4714 // This shadows the accessor in the prototype. |
4715 class AccessorInfo: public Struct { | 4715 class AccessorInfo: public Struct { |
4716 public: | 4716 public: |
4717 DECL_ACCESSORS(getter, Object) | 4717 DECL_ACCESSORS(getter, Object) |
4718 DECL_ACCESSORS(setter, Object) | 4718 DECL_ACCESSORS(setter, Object) |
4719 DECL_ACCESSORS(data, Object) | 4719 DECL_ACCESSORS(data, Object) |
4720 DECL_ACCESSORS(name, Object) | 4720 DECL_ACCESSORS(name, Object) |
4721 DECL_ACCESSORS(flag, Smi) | 4721 DECL_ACCESSORS(flag, Smi) |
4722 DECL_ACCESSORS(load_stub_cache, Object) | |
4723 | 4722 |
4724 inline bool all_can_read(); | 4723 inline bool all_can_read(); |
4725 inline void set_all_can_read(bool value); | 4724 inline void set_all_can_read(bool value); |
4726 | 4725 |
4727 inline bool all_can_write(); | 4726 inline bool all_can_write(); |
4728 inline void set_all_can_write(bool value); | 4727 inline void set_all_can_write(bool value); |
4729 | 4728 |
4730 inline bool prohibits_overwriting(); | 4729 inline bool prohibits_overwriting(); |
4731 inline void set_prohibits_overwriting(bool value); | 4730 inline void set_prohibits_overwriting(bool value); |
4732 | 4731 |
4733 inline PropertyAttributes property_attributes(); | 4732 inline PropertyAttributes property_attributes(); |
4734 inline void set_property_attributes(PropertyAttributes attributes); | 4733 inline void set_property_attributes(PropertyAttributes attributes); |
4735 | 4734 |
4736 static inline AccessorInfo* cast(Object* obj); | 4735 static inline AccessorInfo* cast(Object* obj); |
4737 | 4736 |
4738 #ifdef DEBUG | 4737 #ifdef DEBUG |
4739 void AccessorInfoPrint(); | 4738 void AccessorInfoPrint(); |
4740 void AccessorInfoVerify(); | 4739 void AccessorInfoVerify(); |
4741 #endif | 4740 #endif |
4742 | 4741 |
4743 static const int kGetterOffset = HeapObject::kHeaderSize; | 4742 static const int kGetterOffset = HeapObject::kHeaderSize; |
4744 static const int kSetterOffset = kGetterOffset + kPointerSize; | 4743 static const int kSetterOffset = kGetterOffset + kPointerSize; |
4745 static const int kDataOffset = kSetterOffset + kPointerSize; | 4744 static const int kDataOffset = kSetterOffset + kPointerSize; |
4746 static const int kNameOffset = kDataOffset + kPointerSize; | 4745 static const int kNameOffset = kDataOffset + kPointerSize; |
4747 static const int kFlagOffset = kNameOffset + kPointerSize; | 4746 static const int kFlagOffset = kNameOffset + kPointerSize; |
4748 static const int kLoadStubCacheOffset = kFlagOffset + kPointerSize; | 4747 static const int kSize = kFlagOffset + kPointerSize; |
4749 static const int kSize = kLoadStubCacheOffset + kPointerSize; | |
4750 | 4748 |
4751 private: | 4749 private: |
4752 // Bit positions in flag. | 4750 // Bit positions in flag. |
4753 static const int kAllCanReadBit = 0; | 4751 static const int kAllCanReadBit = 0; |
4754 static const int kAllCanWriteBit = 1; | 4752 static const int kAllCanWriteBit = 1; |
4755 static const int kProhibitsOverwritingBit = 2; | 4753 static const int kProhibitsOverwritingBit = 2; |
4756 class AttributesField: public BitField<PropertyAttributes, 3, 3> {}; | 4754 class AttributesField: public BitField<PropertyAttributes, 3, 3> {}; |
4757 | 4755 |
4758 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); | 4756 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); |
4759 }; | 4757 }; |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5146 } else { | 5144 } else { |
5147 value &= ~(1 << bit_position); | 5145 value &= ~(1 << bit_position); |
5148 } | 5146 } |
5149 return value; | 5147 return value; |
5150 } | 5148 } |
5151 }; | 5149 }; |
5152 | 5150 |
5153 } } // namespace v8::internal | 5151 } } // namespace v8::internal |
5154 | 5152 |
5155 #endif // V8_OBJECTS_H_ | 5153 #endif // V8_OBJECTS_H_ |
OLD | NEW |