OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 5309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5320 // If the accessor in the prototype has the READ_ONLY property attribute, then | 5320 // If the accessor in the prototype has the READ_ONLY property attribute, then |
5321 // a new value is added to the local object when the property is set. | 5321 // a new value is added to the local object when the property is set. |
5322 // This shadows the accessor in the prototype. | 5322 // This shadows the accessor in the prototype. |
5323 class AccessorInfo: public Struct { | 5323 class AccessorInfo: public Struct { |
5324 public: | 5324 public: |
5325 DECL_ACCESSORS(getter, Object) | 5325 DECL_ACCESSORS(getter, Object) |
5326 DECL_ACCESSORS(setter, Object) | 5326 DECL_ACCESSORS(setter, Object) |
5327 DECL_ACCESSORS(data, Object) | 5327 DECL_ACCESSORS(data, Object) |
5328 DECL_ACCESSORS(name, Object) | 5328 DECL_ACCESSORS(name, Object) |
5329 DECL_ACCESSORS(flag, Smi) | 5329 DECL_ACCESSORS(flag, Smi) |
5330 DECL_ACCESSORS(load_stub_cache, Object) | |
5331 | 5330 |
5332 inline bool all_can_read(); | 5331 inline bool all_can_read(); |
5333 inline void set_all_can_read(bool value); | 5332 inline void set_all_can_read(bool value); |
5334 | 5333 |
5335 inline bool all_can_write(); | 5334 inline bool all_can_write(); |
5336 inline void set_all_can_write(bool value); | 5335 inline void set_all_can_write(bool value); |
5337 | 5336 |
5338 inline bool prohibits_overwriting(); | 5337 inline bool prohibits_overwriting(); |
5339 inline void set_prohibits_overwriting(bool value); | 5338 inline void set_prohibits_overwriting(bool value); |
5340 | 5339 |
5341 inline PropertyAttributes property_attributes(); | 5340 inline PropertyAttributes property_attributes(); |
5342 inline void set_property_attributes(PropertyAttributes attributes); | 5341 inline void set_property_attributes(PropertyAttributes attributes); |
5343 | 5342 |
5344 static inline AccessorInfo* cast(Object* obj); | 5343 static inline AccessorInfo* cast(Object* obj); |
5345 | 5344 |
5346 #ifdef DEBUG | 5345 #ifdef DEBUG |
5347 void AccessorInfoPrint(); | 5346 void AccessorInfoPrint(); |
5348 void AccessorInfoVerify(); | 5347 void AccessorInfoVerify(); |
5349 #endif | 5348 #endif |
5350 | 5349 |
5351 static const int kGetterOffset = HeapObject::kHeaderSize; | 5350 static const int kGetterOffset = HeapObject::kHeaderSize; |
5352 static const int kSetterOffset = kGetterOffset + kPointerSize; | 5351 static const int kSetterOffset = kGetterOffset + kPointerSize; |
5353 static const int kDataOffset = kSetterOffset + kPointerSize; | 5352 static const int kDataOffset = kSetterOffset + kPointerSize; |
5354 static const int kNameOffset = kDataOffset + kPointerSize; | 5353 static const int kNameOffset = kDataOffset + kPointerSize; |
5355 static const int kFlagOffset = kNameOffset + kPointerSize; | 5354 static const int kFlagOffset = kNameOffset + kPointerSize; |
5356 static const int kLoadStubCacheOffset = kFlagOffset + kPointerSize; | 5355 static const int kSize = kFlagOffset + kPointerSize; |
5357 static const int kSize = kLoadStubCacheOffset + kPointerSize; | |
5358 | 5356 |
5359 private: | 5357 private: |
5360 // Bit positions in flag. | 5358 // Bit positions in flag. |
5361 static const int kAllCanReadBit = 0; | 5359 static const int kAllCanReadBit = 0; |
5362 static const int kAllCanWriteBit = 1; | 5360 static const int kAllCanWriteBit = 1; |
5363 static const int kProhibitsOverwritingBit = 2; | 5361 static const int kProhibitsOverwritingBit = 2; |
5364 class AttributesField: public BitField<PropertyAttributes, 3, 3> {}; | 5362 class AttributesField: public BitField<PropertyAttributes, 3, 3> {}; |
5365 | 5363 |
5366 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); | 5364 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); |
5367 }; | 5365 }; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5416 | 5414 |
5417 private: | 5415 private: |
5418 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); | 5416 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); |
5419 }; | 5417 }; |
5420 | 5418 |
5421 | 5419 |
5422 class CallHandlerInfo: public Struct { | 5420 class CallHandlerInfo: public Struct { |
5423 public: | 5421 public: |
5424 DECL_ACCESSORS(callback, Object) | 5422 DECL_ACCESSORS(callback, Object) |
5425 DECL_ACCESSORS(data, Object) | 5423 DECL_ACCESSORS(data, Object) |
5426 DECL_ACCESSORS(call_stub_cache, Object) | |
5427 | 5424 |
5428 static inline CallHandlerInfo* cast(Object* obj); | 5425 static inline CallHandlerInfo* cast(Object* obj); |
5429 | 5426 |
5430 #ifdef DEBUG | 5427 #ifdef DEBUG |
5431 void CallHandlerInfoPrint(); | 5428 void CallHandlerInfoPrint(); |
5432 void CallHandlerInfoVerify(); | 5429 void CallHandlerInfoVerify(); |
5433 #endif | 5430 #endif |
5434 | 5431 |
5435 static const int kCallbackOffset = HeapObject::kHeaderSize; | 5432 static const int kCallbackOffset = HeapObject::kHeaderSize; |
5436 static const int kDataOffset = kCallbackOffset + kPointerSize; | 5433 static const int kDataOffset = kCallbackOffset + kPointerSize; |
5437 static const int kCallStubCacheOffset = kDataOffset + kPointerSize; | 5434 static const int kSize = kDataOffset + kPointerSize; |
5438 static const int kSize = kCallStubCacheOffset + kPointerSize; | |
5439 | 5435 |
5440 private: | 5436 private: |
5441 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); | 5437 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); |
5442 }; | 5438 }; |
5443 | 5439 |
5444 | 5440 |
5445 class TemplateInfo: public Struct { | 5441 class TemplateInfo: public Struct { |
5446 public: | 5442 public: |
5447 DECL_ACCESSORS(tag, Object) | 5443 DECL_ACCESSORS(tag, Object) |
5448 DECL_ACCESSORS(property_list, Object) | 5444 DECL_ACCESSORS(property_list, Object) |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5774 } else { | 5770 } else { |
5775 value &= ~(1 << bit_position); | 5771 value &= ~(1 << bit_position); |
5776 } | 5772 } |
5777 return value; | 5773 return value; |
5778 } | 5774 } |
5779 }; | 5775 }; |
5780 | 5776 |
5781 } } // namespace v8::internal | 5777 } } // namespace v8::internal |
5782 | 5778 |
5783 #endif // V8_OBJECTS_H_ | 5779 #endif // V8_OBJECTS_H_ |
OLD | NEW |