| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1273 // Lookup a property. If found, the result is valid and has | 1273 // Lookup a property. If found, the result is valid and has |
| 1274 // detailed information. | 1274 // detailed information. |
| 1275 void LocalLookup(String* name, LookupResult* result); | 1275 void LocalLookup(String* name, LookupResult* result); |
| 1276 void Lookup(String* name, LookupResult* result); | 1276 void Lookup(String* name, LookupResult* result); |
| 1277 | 1277 |
| 1278 // The following lookup functions skip interceptors. | 1278 // The following lookup functions skip interceptors. |
| 1279 void LocalLookupRealNamedProperty(String* name, LookupResult* result); | 1279 void LocalLookupRealNamedProperty(String* name, LookupResult* result); |
| 1280 void LookupRealNamedProperty(String* name, LookupResult* result); | 1280 void LookupRealNamedProperty(String* name, LookupResult* result); |
| 1281 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); | 1281 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); |
| 1282 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); | 1282 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); |
| 1283 void LookupCallback(String* name, LookupResult* result); |
| 1283 | 1284 |
| 1284 // Returns the number of properties on this object filtering out properties | 1285 // Returns the number of properties on this object filtering out properties |
| 1285 // with the specified attributes (ignoring interceptors). | 1286 // with the specified attributes (ignoring interceptors). |
| 1286 int NumberOfLocalProperties(PropertyAttributes filter); | 1287 int NumberOfLocalProperties(PropertyAttributes filter); |
| 1287 // Returns the number of enumerable properties (ignoring interceptors). | 1288 // Returns the number of enumerable properties (ignoring interceptors). |
| 1288 int NumberOfEnumProperties(); | 1289 int NumberOfEnumProperties(); |
| 1289 // Fill in details for properties into storage. | 1290 // Fill in details for properties into storage. |
| 1290 void GetLocalPropertyNames(FixedArray* storage); | 1291 void GetLocalPropertyNames(FixedArray* storage); |
| 1291 | 1292 |
| 1292 // Returns the number of properties on this object filtering out properties | 1293 // Returns the number of properties on this object filtering out properties |
| (...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2357 inline void set_has_instance_call_handler() { | 2358 inline void set_has_instance_call_handler() { |
| 2358 set_bit_field(bit_field() | (1 << kHasInstanceCallHandler)); | 2359 set_bit_field(bit_field() | (1 << kHasInstanceCallHandler)); |
| 2359 } | 2360 } |
| 2360 | 2361 |
| 2361 inline bool has_instance_call_handler() { | 2362 inline bool has_instance_call_handler() { |
| 2362 return ((1 << kHasInstanceCallHandler) & bit_field()) != 0; | 2363 return ((1 << kHasInstanceCallHandler) & bit_field()) != 0; |
| 2363 } | 2364 } |
| 2364 | 2365 |
| 2365 // Tells whether the instance needs security checks when accessing its | 2366 // Tells whether the instance needs security checks when accessing its |
| 2366 // properties. | 2367 // properties. |
| 2367 inline void set_is_access_check_needed() { | 2368 inline void set_is_access_check_needed(bool access_check_needed); |
| 2368 set_bit_field(bit_field() | (1 << kIsAccessCheckNeeded)); | 2369 inline bool is_access_check_needed(); |
| 2369 } | |
| 2370 | |
| 2371 inline bool is_access_check_needed() { | |
| 2372 return ((1 << kIsAccessCheckNeeded) & bit_field()) != 0; | |
| 2373 } | |
| 2374 | 2370 |
| 2375 // [prototype]: implicit prototype object. | 2371 // [prototype]: implicit prototype object. |
| 2376 DECL_ACCESSORS(prototype, Object) | 2372 DECL_ACCESSORS(prototype, Object) |
| 2377 | 2373 |
| 2378 // [constructor]: points back to the function responsible for this map. | 2374 // [constructor]: points back to the function responsible for this map. |
| 2379 DECL_ACCESSORS(constructor, Object) | 2375 DECL_ACCESSORS(constructor, Object) |
| 2380 | 2376 |
| 2381 // [instance descriptors]: describes the object. | 2377 // [instance descriptors]: describes the object. |
| 2382 DECL_ACCESSORS(instance_descriptors, DescriptorArray) | 2378 DECL_ACCESSORS(instance_descriptors, DescriptorArray) |
| 2383 | 2379 |
| (...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3710 DECL_ACCESSORS(data, Object) | 3706 DECL_ACCESSORS(data, Object) |
| 3711 DECL_ACCESSORS(name, Object) | 3707 DECL_ACCESSORS(name, Object) |
| 3712 DECL_ACCESSORS(flag, Smi) | 3708 DECL_ACCESSORS(flag, Smi) |
| 3713 | 3709 |
| 3714 inline bool all_can_read(); | 3710 inline bool all_can_read(); |
| 3715 inline void set_all_can_read(bool value); | 3711 inline void set_all_can_read(bool value); |
| 3716 | 3712 |
| 3717 inline bool all_can_write(); | 3713 inline bool all_can_write(); |
| 3718 inline void set_all_can_write(bool value); | 3714 inline void set_all_can_write(bool value); |
| 3719 | 3715 |
| 3716 inline bool prohibits_overwriting(); |
| 3717 inline void set_prohibits_overwriting(bool value); |
| 3718 |
| 3720 inline PropertyAttributes property_attributes(); | 3719 inline PropertyAttributes property_attributes(); |
| 3721 inline void set_property_attributes(PropertyAttributes attributes); | 3720 inline void set_property_attributes(PropertyAttributes attributes); |
| 3722 | 3721 |
| 3723 static inline AccessorInfo* cast(Object* obj); | 3722 static inline AccessorInfo* cast(Object* obj); |
| 3724 | 3723 |
| 3725 #ifdef DEBUG | 3724 #ifdef DEBUG |
| 3726 void AccessorInfoPrint(); | 3725 void AccessorInfoPrint(); |
| 3727 void AccessorInfoVerify(); | 3726 void AccessorInfoVerify(); |
| 3728 #endif | 3727 #endif |
| 3729 | 3728 |
| 3730 static const int kGetterOffset = HeapObject::kHeaderSize; | 3729 static const int kGetterOffset = HeapObject::kHeaderSize; |
| 3731 static const int kSetterOffset = kGetterOffset + kPointerSize; | 3730 static const int kSetterOffset = kGetterOffset + kPointerSize; |
| 3732 static const int kDataOffset = kSetterOffset + kPointerSize; | 3731 static const int kDataOffset = kSetterOffset + kPointerSize; |
| 3733 static const int kNameOffset = kDataOffset + kPointerSize; | 3732 static const int kNameOffset = kDataOffset + kPointerSize; |
| 3734 static const int kFlagOffset = kNameOffset + kPointerSize; | 3733 static const int kFlagOffset = kNameOffset + kPointerSize; |
| 3735 static const int kSize = kFlagOffset + kPointerSize; | 3734 static const int kSize = kFlagOffset + kPointerSize; |
| 3736 | 3735 |
| 3737 private: | 3736 private: |
| 3738 // Bit positions in flag. | 3737 // Bit positions in flag. |
| 3739 static const int kAllCanReadBit = 0; | 3738 static const int kAllCanReadBit = 0; |
| 3740 static const int kAllCanWriteBit = 1; | 3739 static const int kAllCanWriteBit = 1; |
| 3741 class AttributesField: public BitField<PropertyAttributes, 2, 3> {}; | 3740 static const int kProhibitsOverwritingBit = 2; |
| 3741 class AttributesField: public BitField<PropertyAttributes, 3, 3> {}; |
| 3742 | 3742 |
| 3743 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); | 3743 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); |
| 3744 }; | 3744 }; |
| 3745 | 3745 |
| 3746 | 3746 |
| 3747 class AccessCheckInfo: public Struct { | 3747 class AccessCheckInfo: public Struct { |
| 3748 public: | 3748 public: |
| 3749 DECL_ACCESSORS(named_callback, Object) | 3749 DECL_ACCESSORS(named_callback, Object) |
| 3750 DECL_ACCESSORS(indexed_callback, Object) | 3750 DECL_ACCESSORS(indexed_callback, Object) |
| 3751 DECL_ACCESSORS(data, Object) | 3751 DECL_ACCESSORS(data, Object) |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4133 } else { | 4133 } else { |
| 4134 value &= ~(1 << bit_position); | 4134 value &= ~(1 << bit_position); |
| 4135 } | 4135 } |
| 4136 return value; | 4136 return value; |
| 4137 } | 4137 } |
| 4138 }; | 4138 }; |
| 4139 | 4139 |
| 4140 } } // namespace v8::internal | 4140 } } // namespace v8::internal |
| 4141 | 4141 |
| 4142 #endif // V8_OBJECTS_H_ | 4142 #endif // V8_OBJECTS_H_ |
| OLD | NEW |