Chromium Code Reviews| 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 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 401 V(JS_OBJECT_TYPE) \ | 401 V(JS_OBJECT_TYPE) \ |
| 402 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ | 402 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
| 403 V(JS_GENERATOR_OBJECT_TYPE) \ | 403 V(JS_GENERATOR_OBJECT_TYPE) \ |
| 404 V(JS_MODULE_TYPE) \ | 404 V(JS_MODULE_TYPE) \ |
| 405 V(JS_GLOBAL_OBJECT_TYPE) \ | 405 V(JS_GLOBAL_OBJECT_TYPE) \ |
| 406 V(JS_BUILTINS_OBJECT_TYPE) \ | 406 V(JS_BUILTINS_OBJECT_TYPE) \ |
| 407 V(JS_GLOBAL_PROXY_TYPE) \ | 407 V(JS_GLOBAL_PROXY_TYPE) \ |
| 408 V(JS_ARRAY_TYPE) \ | 408 V(JS_ARRAY_TYPE) \ |
| 409 V(JS_ARRAY_BUFFER_TYPE) \ | 409 V(JS_ARRAY_BUFFER_TYPE) \ |
| 410 V(JS_TYPED_ARRAY_TYPE) \ | 410 V(JS_TYPED_ARRAY_TYPE) \ |
| 411 V(JS_DATA_VIEW_TYPE) \ | |
| 411 V(JS_PROXY_TYPE) \ | 412 V(JS_PROXY_TYPE) \ |
| 412 V(JS_WEAK_MAP_TYPE) \ | 413 V(JS_WEAK_MAP_TYPE) \ |
| 413 V(JS_REGEXP_TYPE) \ | 414 V(JS_REGEXP_TYPE) \ |
| 414 \ | 415 \ |
| 415 V(JS_FUNCTION_TYPE) \ | 416 V(JS_FUNCTION_TYPE) \ |
| 416 V(JS_FUNCTION_PROXY_TYPE) \ | 417 V(JS_FUNCTION_PROXY_TYPE) \ |
| 417 | 418 |
| 418 #ifdef ENABLE_DEBUGGER_SUPPORT | 419 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 419 #define INSTANCE_TYPE_LIST_DEBUGGER(V) \ | 420 #define INSTANCE_TYPE_LIST_DEBUGGER(V) \ |
| 420 V(DEBUG_INFO_TYPE) \ | 421 V(DEBUG_INFO_TYPE) \ |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 737 JS_OBJECT_TYPE, | 738 JS_OBJECT_TYPE, |
| 738 JS_CONTEXT_EXTENSION_OBJECT_TYPE, | 739 JS_CONTEXT_EXTENSION_OBJECT_TYPE, |
| 739 JS_GENERATOR_OBJECT_TYPE, | 740 JS_GENERATOR_OBJECT_TYPE, |
| 740 JS_MODULE_TYPE, | 741 JS_MODULE_TYPE, |
| 741 JS_GLOBAL_OBJECT_TYPE, | 742 JS_GLOBAL_OBJECT_TYPE, |
| 742 JS_BUILTINS_OBJECT_TYPE, | 743 JS_BUILTINS_OBJECT_TYPE, |
| 743 JS_GLOBAL_PROXY_TYPE, | 744 JS_GLOBAL_PROXY_TYPE, |
| 744 JS_ARRAY_TYPE, | 745 JS_ARRAY_TYPE, |
| 745 JS_ARRAY_BUFFER_TYPE, | 746 JS_ARRAY_BUFFER_TYPE, |
| 746 JS_TYPED_ARRAY_TYPE, | 747 JS_TYPED_ARRAY_TYPE, |
| 748 JS_DATA_VIEW_TYPE, | |
| 747 JS_SET_TYPE, | 749 JS_SET_TYPE, |
| 748 JS_MAP_TYPE, | 750 JS_MAP_TYPE, |
| 749 JS_WEAK_MAP_TYPE, | 751 JS_WEAK_MAP_TYPE, |
| 750 | 752 |
| 751 JS_REGEXP_TYPE, | 753 JS_REGEXP_TYPE, |
| 752 | 754 |
| 753 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE | 755 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE |
| 754 | 756 |
| 755 // Pseudo-types | 757 // Pseudo-types |
| 756 FIRST_TYPE = 0x0, | 758 FIRST_TYPE = 0x0, |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 986 V(Oddball) \ | 988 V(Oddball) \ |
| 987 V(SharedFunctionInfo) \ | 989 V(SharedFunctionInfo) \ |
| 988 V(JSValue) \ | 990 V(JSValue) \ |
| 989 V(JSDate) \ | 991 V(JSDate) \ |
| 990 V(JSMessageObject) \ | 992 V(JSMessageObject) \ |
| 991 V(StringWrapper) \ | 993 V(StringWrapper) \ |
| 992 V(Foreign) \ | 994 V(Foreign) \ |
| 993 V(Boolean) \ | 995 V(Boolean) \ |
| 994 V(JSArray) \ | 996 V(JSArray) \ |
| 995 V(JSArrayBuffer) \ | 997 V(JSArrayBuffer) \ |
| 998 V(JSArrayBufferView) \ | |
|
rossberg
2013/06/21 08:44:01
Please add the new classes to the hierarchy commen
Dmitry Lomov (no reviews)
2013/06/21 11:32:10
Done.
| |
| 996 V(JSTypedArray) \ | 999 V(JSTypedArray) \ |
| 1000 V(JSDataView) \ | |
| 997 V(JSProxy) \ | 1001 V(JSProxy) \ |
| 998 V(JSFunctionProxy) \ | 1002 V(JSFunctionProxy) \ |
| 999 V(JSSet) \ | 1003 V(JSSet) \ |
| 1000 V(JSMap) \ | 1004 V(JSMap) \ |
| 1001 V(JSWeakMap) \ | 1005 V(JSWeakMap) \ |
| 1002 V(JSRegExp) \ | 1006 V(JSRegExp) \ |
| 1003 V(HashTable) \ | 1007 V(HashTable) \ |
| 1004 V(Dictionary) \ | 1008 V(Dictionary) \ |
| 1005 V(StringTable) \ | 1009 V(StringTable) \ |
| 1006 V(JSFunctionResultCache) \ | 1010 V(JSFunctionResultCache) \ |
| (...skipping 7827 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8834 kSize + v8::ArrayBuffer::kInternalFieldCount * kPointerSize; | 8838 kSize + v8::ArrayBuffer::kInternalFieldCount * kPointerSize; |
| 8835 | 8839 |
| 8836 private: | 8840 private: |
| 8837 // Bit position in a flag | 8841 // Bit position in a flag |
| 8838 static const int kIsExternalBit = 0; | 8842 static const int kIsExternalBit = 0; |
| 8839 | 8843 |
| 8840 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBuffer); | 8844 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBuffer); |
| 8841 }; | 8845 }; |
| 8842 | 8846 |
| 8843 | 8847 |
| 8844 class JSTypedArray: public JSObject { | 8848 class JSArrayBufferView: public JSObject { |
| 8845 public: | 8849 public: |
| 8846 // [buffer]: ArrayBuffer that this typed array views. | 8850 // [buffer]: ArrayBuffer that this typed array views. |
| 8847 DECL_ACCESSORS(buffer, Object) | 8851 DECL_ACCESSORS(buffer, Object) |
| 8848 | 8852 |
| 8849 // [byte_length]: offset of typed array in bytes. | 8853 // [byte_length]: offset of typed array in bytes. |
| 8850 DECL_ACCESSORS(byte_offset, Object) | 8854 DECL_ACCESSORS(byte_offset, Object) |
| 8851 | 8855 |
| 8852 // [byte_length]: length of typed array in bytes. | 8856 // [byte_length]: length of typed array in bytes. |
| 8853 DECL_ACCESSORS(byte_length, Object) | 8857 DECL_ACCESSORS(byte_length, Object) |
| 8854 | 8858 |
| 8855 // [length]: length of typed array in elements. | |
| 8856 DECL_ACCESSORS(length, Object) | |
| 8857 | |
| 8858 // [weak_next]: linked list of typed arrays over the same array buffer. | 8859 // [weak_next]: linked list of typed arrays over the same array buffer. |
| 8859 DECL_ACCESSORS(weak_next, Object) | 8860 DECL_ACCESSORS(weak_next, Object) |
| 8860 | 8861 |
| 8862 // Casting. | |
| 8863 static inline JSArrayBufferView* cast(Object* obj); | |
| 8864 | |
| 8865 DECLARE_VERIFIER(JSArrayBufferView); | |
| 8866 | |
| 8867 static const int kBufferOffset = JSObject::kHeaderSize; | |
| 8868 static const int kByteOffsetOffset = kBufferOffset + kPointerSize; | |
| 8869 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize; | |
| 8870 static const int kWeakNextOffset = kByteLengthOffset + kPointerSize; | |
| 8871 static const int kViewSize = kWeakNextOffset + kPointerSize; | |
| 8872 | |
| 8873 protected: | |
| 8874 void NeuterView(); | |
| 8875 | |
| 8876 private: | |
| 8877 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBufferView); | |
| 8878 }; | |
| 8879 | |
| 8880 | |
| 8881 class JSTypedArray: public JSArrayBufferView { | |
| 8882 public: | |
| 8883 // [length]: length of typed array in elements. | |
| 8884 DECL_ACCESSORS(length, Object) | |
| 8885 | |
| 8861 // Neutering. Only neuters this typed array. | 8886 // Neutering. Only neuters this typed array. |
| 8862 void Neuter(); | 8887 void Neuter(); |
| 8863 | 8888 |
| 8864 // Casting. | 8889 // Casting. |
| 8865 static inline JSTypedArray* cast(Object* obj); | 8890 static inline JSTypedArray* cast(Object* obj); |
| 8866 | 8891 |
| 8867 ExternalArrayType type(); | 8892 ExternalArrayType type(); |
| 8868 size_t element_size(); | 8893 size_t element_size(); |
| 8869 | 8894 |
| 8870 // Dispatched behavior. | 8895 // Dispatched behavior. |
| 8871 DECLARE_PRINTER(JSTypedArray) | 8896 DECLARE_PRINTER(JSTypedArray) |
| 8872 DECLARE_VERIFIER(JSTypedArray) | 8897 DECLARE_VERIFIER(JSTypedArray) |
| 8873 | 8898 |
| 8874 static const int kBufferOffset = JSObject::kHeaderSize; | 8899 static const int kLengthOffset = kViewSize + kPointerSize; |
| 8875 static const int kByteOffsetOffset = kBufferOffset + kPointerSize; | 8900 static const int kSize = kLengthOffset + kPointerSize; |
| 8876 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize; | |
| 8877 static const int kLengthOffset = kByteLengthOffset + kPointerSize; | |
| 8878 static const int kWeakNextOffset = kLengthOffset + kPointerSize; | |
| 8879 static const int kSize = kWeakNextOffset + kPointerSize; | |
| 8880 | 8901 |
| 8881 private: | 8902 private: |
| 8882 DISALLOW_IMPLICIT_CONSTRUCTORS(JSTypedArray); | 8903 DISALLOW_IMPLICIT_CONSTRUCTORS(JSTypedArray); |
| 8883 }; | 8904 }; |
| 8884 | 8905 |
| 8885 | 8906 |
| 8907 class JSDataView: public JSArrayBufferView { | |
| 8908 public: | |
| 8909 // Only neuters this DataView | |
| 8910 void Neuter(); | |
| 8911 | |
| 8912 // Casting. | |
| 8913 static inline JSDataView* cast(Object* obj); | |
| 8914 | |
| 8915 // Dispatched behavior. | |
| 8916 DECLARE_PRINTER(JSDataView) | |
| 8917 DECLARE_VERIFIER(JSDataView) | |
| 8918 | |
| 8919 static const int kSize = kViewSize; | |
| 8920 | |
| 8921 private: | |
| 8922 DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataView); | |
| 8923 }; | |
| 8924 | |
| 8925 | |
| 8886 // Foreign describes objects pointing from JavaScript to C structures. | 8926 // Foreign describes objects pointing from JavaScript to C structures. |
| 8887 // Since they cannot contain references to JS HeapObjects they can be | 8927 // Since they cannot contain references to JS HeapObjects they can be |
| 8888 // placed in old_data_space. | 8928 // placed in old_data_space. |
| 8889 class Foreign: public HeapObject { | 8929 class Foreign: public HeapObject { |
| 8890 public: | 8930 public: |
| 8891 // [address]: field containing the address. | 8931 // [address]: field containing the address. |
| 8892 inline Address foreign_address(); | 8932 inline Address foreign_address(); |
| 8893 inline void set_foreign_address(Address value); | 8933 inline void set_foreign_address(Address value); |
| 8894 | 8934 |
| 8895 // Casting. | 8935 // Casting. |
| (...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 9684 } else { | 9724 } else { |
| 9685 value &= ~(1 << bit_position); | 9725 value &= ~(1 << bit_position); |
| 9686 } | 9726 } |
| 9687 return value; | 9727 return value; |
| 9688 } | 9728 } |
| 9689 }; | 9729 }; |
| 9690 | 9730 |
| 9691 } } // namespace v8::internal | 9731 } } // namespace v8::internal |
| 9692 | 9732 |
| 9693 #endif // V8_OBJECTS_H_ | 9733 #endif // V8_OBJECTS_H_ |
| OLD | NEW |