OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 9505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9516 inline void set_property_attributes(PropertyAttributes attributes); | 9516 inline void set_property_attributes(PropertyAttributes attributes); |
9517 | 9517 |
9518 // Checks whether the given receiver is compatible with this accessor. | 9518 // Checks whether the given receiver is compatible with this accessor. |
9519 inline bool IsCompatibleReceiver(Object* receiver); | 9519 inline bool IsCompatibleReceiver(Object* receiver); |
9520 | 9520 |
9521 static inline AccessorInfo* cast(Object* obj); | 9521 static inline AccessorInfo* cast(Object* obj); |
9522 | 9522 |
9523 // Dispatched behavior. | 9523 // Dispatched behavior. |
9524 DECLARE_VERIFIER(AccessorInfo) | 9524 DECLARE_VERIFIER(AccessorInfo) |
9525 | 9525 |
| 9526 static int AppendUnique(Handle<Object> descriptors, |
| 9527 Handle<FixedArray> array, |
| 9528 int valid_descriptors); |
9526 | 9529 |
9527 static const int kNameOffset = HeapObject::kHeaderSize; | 9530 static const int kNameOffset = HeapObject::kHeaderSize; |
9528 static const int kFlagOffset = kNameOffset + kPointerSize; | 9531 static const int kFlagOffset = kNameOffset + kPointerSize; |
9529 static const int kExpectedReceiverTypeOffset = kFlagOffset + kPointerSize; | 9532 static const int kExpectedReceiverTypeOffset = kFlagOffset + kPointerSize; |
9530 static const int kSize = kExpectedReceiverTypeOffset + kPointerSize; | 9533 static const int kSize = kExpectedReceiverTypeOffset + kPointerSize; |
9531 | 9534 |
9532 private: | 9535 private: |
9533 // Bit positions in flag. | 9536 // Bit positions in flag. |
9534 static const int kAllCanReadBit = 0; | 9537 static const int kAllCanReadBit = 0; |
9535 static const int kAllCanWriteBit = 1; | 9538 static const int kAllCanWriteBit = 1; |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9809 | 9812 |
9810 private: | 9813 private: |
9811 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); | 9814 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); |
9812 }; | 9815 }; |
9813 | 9816 |
9814 | 9817 |
9815 class TemplateInfo: public Struct { | 9818 class TemplateInfo: public Struct { |
9816 public: | 9819 public: |
9817 DECL_ACCESSORS(tag, Object) | 9820 DECL_ACCESSORS(tag, Object) |
9818 DECL_ACCESSORS(property_list, Object) | 9821 DECL_ACCESSORS(property_list, Object) |
| 9822 DECL_ACCESSORS(property_accessors, Object) |
9819 | 9823 |
9820 DECLARE_VERIFIER(TemplateInfo) | 9824 DECLARE_VERIFIER(TemplateInfo) |
9821 | 9825 |
9822 static const int kTagOffset = HeapObject::kHeaderSize; | 9826 static const int kTagOffset = HeapObject::kHeaderSize; |
9823 static const int kPropertyListOffset = kTagOffset + kPointerSize; | 9827 static const int kPropertyListOffset = kTagOffset + kPointerSize; |
9824 static const int kHeaderSize = kPropertyListOffset + kPointerSize; | 9828 static const int kPropertyAccessorsOffset = |
| 9829 kPropertyListOffset + kPointerSize; |
| 9830 static const int kHeaderSize = kPropertyAccessorsOffset + kPointerSize; |
9825 | 9831 |
9826 private: | 9832 private: |
9827 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo); | 9833 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo); |
9828 }; | 9834 }; |
9829 | 9835 |
9830 | 9836 |
9831 class FunctionTemplateInfo: public TemplateInfo { | 9837 class FunctionTemplateInfo: public TemplateInfo { |
9832 public: | 9838 public: |
9833 DECL_ACCESSORS(serial_number, Object) | 9839 DECL_ACCESSORS(serial_number, Object) |
9834 DECL_ACCESSORS(call_code, Object) | 9840 DECL_ACCESSORS(call_code, Object) |
9835 DECL_ACCESSORS(property_accessors, Object) | |
9836 DECL_ACCESSORS(prototype_template, Object) | 9841 DECL_ACCESSORS(prototype_template, Object) |
9837 DECL_ACCESSORS(parent_template, Object) | 9842 DECL_ACCESSORS(parent_template, Object) |
9838 DECL_ACCESSORS(named_property_handler, Object) | 9843 DECL_ACCESSORS(named_property_handler, Object) |
9839 DECL_ACCESSORS(indexed_property_handler, Object) | 9844 DECL_ACCESSORS(indexed_property_handler, Object) |
9840 DECL_ACCESSORS(instance_template, Object) | 9845 DECL_ACCESSORS(instance_template, Object) |
9841 DECL_ACCESSORS(class_name, Object) | 9846 DECL_ACCESSORS(class_name, Object) |
9842 DECL_ACCESSORS(signature, Object) | 9847 DECL_ACCESSORS(signature, Object) |
9843 DECL_ACCESSORS(instance_call_handler, Object) | 9848 DECL_ACCESSORS(instance_call_handler, Object) |
9844 DECL_ACCESSORS(access_check_info, Object) | 9849 DECL_ACCESSORS(access_check_info, Object) |
9845 DECL_ACCESSORS(flag, Smi) | 9850 DECL_ACCESSORS(flag, Smi) |
(...skipping 10 matching lines...) Expand all Loading... |
9856 DECL_BOOLEAN_ACCESSORS(read_only_prototype) | 9861 DECL_BOOLEAN_ACCESSORS(read_only_prototype) |
9857 | 9862 |
9858 static inline FunctionTemplateInfo* cast(Object* obj); | 9863 static inline FunctionTemplateInfo* cast(Object* obj); |
9859 | 9864 |
9860 // Dispatched behavior. | 9865 // Dispatched behavior. |
9861 DECLARE_PRINTER(FunctionTemplateInfo) | 9866 DECLARE_PRINTER(FunctionTemplateInfo) |
9862 DECLARE_VERIFIER(FunctionTemplateInfo) | 9867 DECLARE_VERIFIER(FunctionTemplateInfo) |
9863 | 9868 |
9864 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; | 9869 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; |
9865 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; | 9870 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize; |
9866 static const int kPropertyAccessorsOffset = kCallCodeOffset + kPointerSize; | |
9867 static const int kPrototypeTemplateOffset = | 9871 static const int kPrototypeTemplateOffset = |
9868 kPropertyAccessorsOffset + kPointerSize; | 9872 kCallCodeOffset + kPointerSize; |
9869 static const int kParentTemplateOffset = | 9873 static const int kParentTemplateOffset = |
9870 kPrototypeTemplateOffset + kPointerSize; | 9874 kPrototypeTemplateOffset + kPointerSize; |
9871 static const int kNamedPropertyHandlerOffset = | 9875 static const int kNamedPropertyHandlerOffset = |
9872 kParentTemplateOffset + kPointerSize; | 9876 kParentTemplateOffset + kPointerSize; |
9873 static const int kIndexedPropertyHandlerOffset = | 9877 static const int kIndexedPropertyHandlerOffset = |
9874 kNamedPropertyHandlerOffset + kPointerSize; | 9878 kNamedPropertyHandlerOffset + kPointerSize; |
9875 static const int kInstanceTemplateOffset = | 9879 static const int kInstanceTemplateOffset = |
9876 kIndexedPropertyHandlerOffset + kPointerSize; | 9880 kIndexedPropertyHandlerOffset + kPointerSize; |
9877 static const int kClassNameOffset = kInstanceTemplateOffset + kPointerSize; | 9881 static const int kClassNameOffset = kInstanceTemplateOffset + kPointerSize; |
9878 static const int kSignatureOffset = kClassNameOffset + kPointerSize; | 9882 static const int kSignatureOffset = kClassNameOffset + kPointerSize; |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10184 } else { | 10188 } else { |
10185 value &= ~(1 << bit_position); | 10189 value &= ~(1 << bit_position); |
10186 } | 10190 } |
10187 return value; | 10191 return value; |
10188 } | 10192 } |
10189 }; | 10193 }; |
10190 | 10194 |
10191 } } // namespace v8::internal | 10195 } } // namespace v8::internal |
10192 | 10196 |
10193 #endif // V8_OBJECTS_H_ | 10197 #endif // V8_OBJECTS_H_ |
OLD | NEW |