Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: src/objects-inl.h

Issue 347073003: Make our FOO::cast methods const. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Outlined stuff. Renamed macro. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« src/objects.h ('K') | « src/objects.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 } 53 }
54 54
55 55
56 #define TYPE_CHECKER(type, instancetype) \ 56 #define TYPE_CHECKER(type, instancetype) \
57 bool Object::Is##type() { \ 57 bool Object::Is##type() { \
58 return Object::IsHeapObject() && \ 58 return Object::IsHeapObject() && \
59 HeapObject::cast(this)->map()->instance_type() == instancetype; \ 59 HeapObject::cast(this)->map()->instance_type() == instancetype; \
60 } 60 }
61 61
62 62
63 #define CAST_ACCESSOR(type) \ 63 // TODO(svenpanne) We use const_cast here and at a few other places to break our
64 type* type::cast(Object* object) { \ 64 // dependency cycle between the cast methods and the predicates. This can be
65 SLOW_ASSERT(object->Is##type()); \ 65 // removed when the predicates are const-correct, too.
66 return reinterpret_cast<type*>(object); \ 66 #define CAST_ACCESSOR(type) \
67 type* type::cast(Object* object) { \
68 SLOW_ASSERT(object->Is##type()); \
69 return reinterpret_cast<type*>(object); \
70 } \
71 const type* type::cast(const Object* object) { \
72 SLOW_ASSERT(const_cast<Object*>(object)->Is##type()); \
73 return reinterpret_cast<const type*>(object); \
67 } 74 }
68 75
69 76
70 #define INT_ACCESSORS(holder, name, offset) \ 77 #define INT_ACCESSORS(holder, name, offset) \
71 int holder::name() const { return READ_INT_FIELD(this, offset); } \ 78 int holder::name() const { return READ_INT_FIELD(this, offset); } \
72 void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); } 79 void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); }
73 80
74 81
75 #define ACCESSORS(holder, name, type, offset) \ 82 #define ACCESSORS(holder, name, type, offset) \
76 type* holder::name() const { return type::cast(READ_FIELD(this, offset)); } \ 83 type* holder::name() const { return type::cast(READ_FIELD(this, offset)); } \
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 } 821 }
815 822
816 823
817 bool Object::IsHashTable() { 824 bool Object::IsHashTable() {
818 return Object::IsHeapObject() && 825 return Object::IsHeapObject() &&
819 HeapObject::cast(this)->map() == 826 HeapObject::cast(this)->map() ==
820 HeapObject::cast(this)->GetHeap()->hash_table_map(); 827 HeapObject::cast(this)->GetHeap()->hash_table_map();
821 } 828 }
822 829
823 830
831 bool Object::IsWeakHashTable() {
832 return IsHashTable();
833 }
834
835
824 bool Object::IsDictionary() { 836 bool Object::IsDictionary() {
825 return IsHashTable() && 837 return IsHashTable() &&
826 this != HeapObject::cast(this)->GetHeap()->string_table(); 838 this != HeapObject::cast(this)->GetHeap()->string_table();
827 } 839 }
828 840
829 841
842 bool Object::IsNameDictionary() {
843 return IsDictionary();
844 }
845
846
847 bool Object::IsSeededNumberDictionary() {
848 return IsDictionary();
849 }
850
851
852 bool Object::IsUnseededNumberDictionary() {
853 return IsDictionary();
854 }
855
856
830 bool Object::IsStringTable() { 857 bool Object::IsStringTable() {
831 return IsHashTable(); 858 return IsHashTable();
832 } 859 }
833 860
834 861
835 bool Object::IsJSFunctionResultCache() { 862 bool Object::IsJSFunctionResultCache() {
836 if (!IsFixedArray()) return false; 863 if (!IsFixedArray()) return false;
837 FixedArray* self = FixedArray::cast(this); 864 FixedArray* self = FixedArray::cast(this);
838 int length = self->length(); 865 int length = self->length();
839 if (length < JSFunctionResultCache::kEntriesIndex) return false; 866 if (length < JSFunctionResultCache::kEntriesIndex) return false;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 } 927 }
901 928
902 929
903 bool Object::IsOrderedHashTable() { 930 bool Object::IsOrderedHashTable() {
904 return IsHeapObject() && 931 return IsHeapObject() &&
905 HeapObject::cast(this)->map() == 932 HeapObject::cast(this)->map() ==
906 HeapObject::cast(this)->GetHeap()->ordered_hash_table_map(); 933 HeapObject::cast(this)->GetHeap()->ordered_hash_table_map();
907 } 934 }
908 935
909 936
937 bool Object::IsOrderedHashSet() {
938 return IsOrderedHashTable();
939 }
940
941
942 bool Object::IsOrderedHashMap() {
943 return IsOrderedHashTable();
944 }
945
946
910 bool Object::IsPrimitive() { 947 bool Object::IsPrimitive() {
911 return IsOddball() || IsNumber() || IsString(); 948 return IsOddball() || IsNumber() || IsString();
912 } 949 }
913 950
914 951
915 bool Object::IsJSGlobalProxy() { 952 bool Object::IsJSGlobalProxy() {
916 bool result = IsHeapObject() && 953 bool result = IsHeapObject() &&
917 (HeapObject::cast(this)->map()->instance_type() == 954 (HeapObject::cast(this)->map()->instance_type() ==
918 JS_GLOBAL_PROXY_TYPE); 955 JS_GLOBAL_PROXY_TYPE);
919 ASSERT(!result || 956 ASSERT(!result ||
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2094 IsUndefined() || 2131 IsUndefined() ||
2095 IsTrue() || 2132 IsTrue() ||
2096 IsFalse() || 2133 IsFalse() ||
2097 IsNull())) { 2134 IsNull())) {
2098 FATAL("API call returned invalid object"); 2135 FATAL("API call returned invalid object");
2099 } 2136 }
2100 #endif // ENABLE_EXTRA_CHECKS 2137 #endif // ENABLE_EXTRA_CHECKS
2101 } 2138 }
2102 2139
2103 2140
2104 FixedArrayBase* FixedArrayBase::cast(Object* object) {
2105 ASSERT(object->IsFixedArrayBase());
2106 return reinterpret_cast<FixedArrayBase*>(object);
2107 }
2108
2109
2110 Object* FixedArray::get(int index) { 2141 Object* FixedArray::get(int index) {
2111 SLOW_ASSERT(index >= 0 && index < this->length()); 2142 SLOW_ASSERT(index >= 0 && index < this->length());
2112 return READ_FIELD(this, kHeaderSize + index * kPointerSize); 2143 return READ_FIELD(this, kHeaderSize + index * kPointerSize);
2113 } 2144 }
2114 2145
2115 2146
2116 Handle<Object> FixedArray::get(Handle<FixedArray> array, int index) { 2147 Handle<Object> FixedArray::get(Handle<FixedArray> array, int index) {
2117 return handle(array->get(index), array->GetIsolate()); 2148 return handle(array->get(index), array->GetIsolate());
2118 } 2149 }
2119 2150
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after
3009 3040
3010 void SeededNumberDictionary::set_requires_slow_elements() { 3041 void SeededNumberDictionary::set_requires_slow_elements() {
3011 set(kMaxNumberKeyIndex, Smi::FromInt(kRequiresSlowElementsMask)); 3042 set(kMaxNumberKeyIndex, Smi::FromInt(kRequiresSlowElementsMask));
3012 } 3043 }
3013 3044
3014 3045
3015 // ------------------------------------ 3046 // ------------------------------------
3016 // Cast operations 3047 // Cast operations
3017 3048
3018 3049
3019 CAST_ACCESSOR(FixedArray) 3050 CAST_ACCESSOR(AccessorInfo)
3020 CAST_ACCESSOR(FixedDoubleArray) 3051 CAST_ACCESSOR(ByteArray)
3021 CAST_ACCESSOR(FixedTypedArrayBase) 3052 CAST_ACCESSOR(Cell)
3053 CAST_ACCESSOR(Code)
3054 CAST_ACCESSOR(CodeCacheHashTable)
3055 CAST_ACCESSOR(CompilationCacheTable)
3056 CAST_ACCESSOR(ConsString)
3022 CAST_ACCESSOR(ConstantPoolArray) 3057 CAST_ACCESSOR(ConstantPoolArray)
3023 CAST_ACCESSOR(DescriptorArray)
3024 CAST_ACCESSOR(DeoptimizationInputData) 3058 CAST_ACCESSOR(DeoptimizationInputData)
3025 CAST_ACCESSOR(DeoptimizationOutputData) 3059 CAST_ACCESSOR(DeoptimizationOutputData)
3026 CAST_ACCESSOR(DependentCode) 3060 CAST_ACCESSOR(DependentCode)
3027 CAST_ACCESSOR(StringTable) 3061 CAST_ACCESSOR(DescriptorArray)
3028 CAST_ACCESSOR(JSFunctionResultCache) 3062 CAST_ACCESSOR(ExternalArray)
3029 CAST_ACCESSOR(NormalizedMapCache) 3063 CAST_ACCESSOR(ExternalAsciiString)
3030 CAST_ACCESSOR(ScopeInfo) 3064 CAST_ACCESSOR(ExternalFloat32Array)
3031 CAST_ACCESSOR(CompilationCacheTable) 3065 CAST_ACCESSOR(ExternalFloat64Array)
3032 CAST_ACCESSOR(CodeCacheHashTable) 3066 CAST_ACCESSOR(ExternalInt16Array)
3033 CAST_ACCESSOR(PolymorphicCodeCacheHashTable) 3067 CAST_ACCESSOR(ExternalInt32Array)
3034 CAST_ACCESSOR(MapCache) 3068 CAST_ACCESSOR(ExternalInt8Array)
3035 CAST_ACCESSOR(String)
3036 CAST_ACCESSOR(SeqString)
3037 CAST_ACCESSOR(SeqOneByteString)
3038 CAST_ACCESSOR(SeqTwoByteString)
3039 CAST_ACCESSOR(SlicedString)
3040 CAST_ACCESSOR(ConsString)
3041 CAST_ACCESSOR(ExternalString) 3069 CAST_ACCESSOR(ExternalString)
3042 CAST_ACCESSOR(ExternalAsciiString)
3043 CAST_ACCESSOR(ExternalTwoByteString) 3070 CAST_ACCESSOR(ExternalTwoByteString)
3044 CAST_ACCESSOR(Symbol) 3071 CAST_ACCESSOR(ExternalUint16Array)
3045 CAST_ACCESSOR(Name) 3072 CAST_ACCESSOR(ExternalUint32Array)
3046 CAST_ACCESSOR(JSReceiver) 3073 CAST_ACCESSOR(ExternalUint8Array)
3047 CAST_ACCESSOR(JSObject) 3074 CAST_ACCESSOR(ExternalUint8ClampedArray)
3048 CAST_ACCESSOR(Smi) 3075 CAST_ACCESSOR(FixedArray)
3076 CAST_ACCESSOR(FixedArrayBase)
3077 CAST_ACCESSOR(FixedDoubleArray)
3078 CAST_ACCESSOR(FixedTypedArrayBase)
3079 CAST_ACCESSOR(Foreign)
3080 CAST_ACCESSOR(FreeSpace)
3081 CAST_ACCESSOR(GlobalObject)
3082 CAST_ACCESSOR(HeapNumber)
3049 CAST_ACCESSOR(HeapObject) 3083 CAST_ACCESSOR(HeapObject)
3050 CAST_ACCESSOR(HeapNumber)
3051 CAST_ACCESSOR(Oddball)
3052 CAST_ACCESSOR(Cell)
3053 CAST_ACCESSOR(PropertyCell)
3054 CAST_ACCESSOR(SharedFunctionInfo)
3055 CAST_ACCESSOR(Map)
3056 CAST_ACCESSOR(JSFunction)
3057 CAST_ACCESSOR(GlobalObject)
3058 CAST_ACCESSOR(JSGlobalProxy)
3059 CAST_ACCESSOR(JSGlobalObject)
3060 CAST_ACCESSOR(JSBuiltinsObject)
3061 CAST_ACCESSOR(Code)
3062 CAST_ACCESSOR(JSArray) 3084 CAST_ACCESSOR(JSArray)
3063 CAST_ACCESSOR(JSArrayBuffer) 3085 CAST_ACCESSOR(JSArrayBuffer)
3064 CAST_ACCESSOR(JSArrayBufferView) 3086 CAST_ACCESSOR(JSArrayBufferView)
3087 CAST_ACCESSOR(JSBuiltinsObject)
3088 CAST_ACCESSOR(JSDataView)
3089 CAST_ACCESSOR(JSDate)
3090 CAST_ACCESSOR(JSFunction)
3091 CAST_ACCESSOR(JSFunctionProxy)
3092 CAST_ACCESSOR(JSFunctionResultCache)
3093 CAST_ACCESSOR(JSGeneratorObject)
3094 CAST_ACCESSOR(JSGlobalObject)
3095 CAST_ACCESSOR(JSGlobalProxy)
3096 CAST_ACCESSOR(JSMap)
3097 CAST_ACCESSOR(JSMapIterator)
3098 CAST_ACCESSOR(JSMessageObject)
3099 CAST_ACCESSOR(JSModule)
3100 CAST_ACCESSOR(JSObject)
3101 CAST_ACCESSOR(JSProxy)
3102 CAST_ACCESSOR(JSReceiver)
3103 CAST_ACCESSOR(JSRegExp)
3104 CAST_ACCESSOR(JSSet)
3105 CAST_ACCESSOR(JSSetIterator)
3065 CAST_ACCESSOR(JSTypedArray) 3106 CAST_ACCESSOR(JSTypedArray)
3066 CAST_ACCESSOR(JSDataView) 3107 CAST_ACCESSOR(JSValue)
3067 CAST_ACCESSOR(JSRegExp)
3068 CAST_ACCESSOR(JSProxy)
3069 CAST_ACCESSOR(JSFunctionProxy)
3070 CAST_ACCESSOR(JSSet)
3071 CAST_ACCESSOR(JSMap)
3072 CAST_ACCESSOR(JSSetIterator)
3073 CAST_ACCESSOR(JSMapIterator)
3074 CAST_ACCESSOR(JSWeakMap) 3108 CAST_ACCESSOR(JSWeakMap)
3075 CAST_ACCESSOR(JSWeakSet) 3109 CAST_ACCESSOR(JSWeakSet)
3076 CAST_ACCESSOR(Foreign) 3110 CAST_ACCESSOR(Map)
3077 CAST_ACCESSOR(ByteArray) 3111 CAST_ACCESSOR(MapCache)
3078 CAST_ACCESSOR(FreeSpace) 3112 CAST_ACCESSOR(Name)
3079 CAST_ACCESSOR(ExternalArray) 3113 CAST_ACCESSOR(NameDictionary)
3080 CAST_ACCESSOR(ExternalInt8Array) 3114 CAST_ACCESSOR(NormalizedMapCache)
3081 CAST_ACCESSOR(ExternalUint8Array) 3115 CAST_ACCESSOR(Object)
3082 CAST_ACCESSOR(ExternalInt16Array) 3116 CAST_ACCESSOR(ObjectHashTable)
3083 CAST_ACCESSOR(ExternalUint16Array) 3117 CAST_ACCESSOR(Oddball)
3084 CAST_ACCESSOR(ExternalInt32Array) 3118 CAST_ACCESSOR(OrderedHashMap)
3085 CAST_ACCESSOR(ExternalUint32Array) 3119 CAST_ACCESSOR(OrderedHashSet)
3086 CAST_ACCESSOR(ExternalFloat32Array) 3120 CAST_ACCESSOR(PolymorphicCodeCacheHashTable)
3087 CAST_ACCESSOR(ExternalFloat64Array) 3121 CAST_ACCESSOR(PropertyCell)
3088 CAST_ACCESSOR(ExternalUint8ClampedArray) 3122 CAST_ACCESSOR(ScopeInfo)
3123 CAST_ACCESSOR(SeededNumberDictionary)
3124 CAST_ACCESSOR(SeqOneByteString)
3125 CAST_ACCESSOR(SeqString)
3126 CAST_ACCESSOR(SeqTwoByteString)
3127 CAST_ACCESSOR(SharedFunctionInfo)
3128 CAST_ACCESSOR(SlicedString)
3129 CAST_ACCESSOR(Smi)
3130 CAST_ACCESSOR(String)
3131 CAST_ACCESSOR(StringTable)
3089 CAST_ACCESSOR(Struct) 3132 CAST_ACCESSOR(Struct)
3090 CAST_ACCESSOR(AccessorInfo) 3133 CAST_ACCESSOR(Symbol)
3134 CAST_ACCESSOR(UnseededNumberDictionary)
3135 CAST_ACCESSOR(WeakHashTable)
3136
3091 3137
3092 template <class Traits> 3138 template <class Traits>
3093 FixedTypedArray<Traits>* FixedTypedArray<Traits>::cast(Object* object) { 3139 FixedTypedArray<Traits>* FixedTypedArray<Traits>::cast(Object* object) {
3094 SLOW_ASSERT(object->IsHeapObject() && 3140 SLOW_ASSERT(object->IsHeapObject() &&
3095 HeapObject::cast(object)->map()->instance_type() == 3141 HeapObject::cast(object)->map()->instance_type() ==
3096 Traits::kInstanceType); 3142 Traits::kInstanceType);
3097 return reinterpret_cast<FixedTypedArray<Traits>*>(object); 3143 return reinterpret_cast<FixedTypedArray<Traits>*>(object);
3098 } 3144 }
3099 3145
3146
3147 template <class Traits>
3148 const FixedTypedArray<Traits>*
3149 FixedTypedArray<Traits>::cast(const Object* object) {
3150 SLOW_ASSERT(const_cast<Object*>(object)->IsHeapObject() &&
3151 HeapObject::cast(object)->map()->instance_type() ==
3152 Traits::kInstanceType);
3153 return reinterpret_cast<FixedTypedArray<Traits>*>(object);
3154 }
3155
3100 3156
3101 #define MAKE_STRUCT_CAST(NAME, Name, name) CAST_ACCESSOR(Name) 3157 #define MAKE_STRUCT_CAST(NAME, Name, name) CAST_ACCESSOR(Name)
3102 STRUCT_LIST(MAKE_STRUCT_CAST) 3158 STRUCT_LIST(MAKE_STRUCT_CAST)
3103 #undef MAKE_STRUCT_CAST 3159 #undef MAKE_STRUCT_CAST
3104 3160
3105 3161
3106 template <typename Derived, typename Shape, typename Key> 3162 template <typename Derived, typename Shape, typename Key>
3107 HashTable<Derived, Shape, Key>* 3163 HashTable<Derived, Shape, Key>*
3108 HashTable<Derived, Shape, Key>::cast(Object* obj) { 3164 HashTable<Derived, Shape, Key>::cast(Object* obj) {
3109 ASSERT(obj->IsHashTable()); 3165 SLOW_ASSERT(obj->IsHashTable());
3110 return reinterpret_cast<HashTable*>(obj); 3166 return reinterpret_cast<HashTable*>(obj);
3111 } 3167 }
3112 3168
3113 3169
3170 template <typename Derived, typename Shape, typename Key>
3171 const HashTable<Derived, Shape, Key>*
3172 HashTable<Derived, Shape, Key>::cast(const Object* obj) {
3173 SLOW_ASSERT(const_cast<Object*>(obj)->IsHashTable());
3174 return reinterpret_cast<const HashTable*>(obj);
3175 }
3176
3177
3114 SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) 3178 SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset)
3115 SYNCHRONIZED_SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset) 3179 SYNCHRONIZED_SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset)
3116 3180
3117 SMI_ACCESSORS(FreeSpace, size, kSizeOffset) 3181 SMI_ACCESSORS(FreeSpace, size, kSizeOffset)
3118 NOBARRIER_SMI_ACCESSORS(FreeSpace, size, kSizeOffset) 3182 NOBARRIER_SMI_ACCESSORS(FreeSpace, size, kSizeOffset)
3119 3183
3120 SMI_ACCESSORS(String, length, kLengthOffset) 3184 SMI_ACCESSORS(String, length, kLengthOffset)
3121 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset) 3185 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset)
3122 3186
3123 3187
(...skipping 2752 matching lines...) Expand 10 before | Expand all | Expand 10 after
5876 } 5940 }
5877 5941
5878 bool JSGeneratorObject::is_closed() { 5942 bool JSGeneratorObject::is_closed() {
5879 return continuation() == kGeneratorClosed; 5943 return continuation() == kGeneratorClosed;
5880 } 5944 }
5881 5945
5882 bool JSGeneratorObject::is_executing() { 5946 bool JSGeneratorObject::is_executing() {
5883 return continuation() == kGeneratorExecuting; 5947 return continuation() == kGeneratorExecuting;
5884 } 5948 }
5885 5949
5886 JSGeneratorObject* JSGeneratorObject::cast(Object* obj) {
5887 ASSERT(obj->IsJSGeneratorObject());
5888 ASSERT(HeapObject::cast(obj)->Size() == JSGeneratorObject::kSize);
5889 return reinterpret_cast<JSGeneratorObject*>(obj);
5890 }
5891
5892
5893 ACCESSORS(JSModule, context, Object, kContextOffset) 5950 ACCESSORS(JSModule, context, Object, kContextOffset)
5894 ACCESSORS(JSModule, scope_info, ScopeInfo, kScopeInfoOffset) 5951 ACCESSORS(JSModule, scope_info, ScopeInfo, kScopeInfoOffset)
5895 5952
5896 5953
5897 JSModule* JSModule::cast(Object* obj) {
5898 ASSERT(obj->IsJSModule());
5899 ASSERT(HeapObject::cast(obj)->Size() == JSModule::kSize);
5900 return reinterpret_cast<JSModule*>(obj);
5901 }
5902
5903
5904 ACCESSORS(JSValue, value, Object, kValueOffset) 5954 ACCESSORS(JSValue, value, Object, kValueOffset)
5905 5955
5906 5956
5907 JSValue* JSValue::cast(Object* obj) {
5908 ASSERT(obj->IsJSValue());
5909 ASSERT(HeapObject::cast(obj)->Size() == JSValue::kSize);
5910 return reinterpret_cast<JSValue*>(obj);
5911 }
5912
5913
5914 ACCESSORS(JSDate, value, Object, kValueOffset) 5957 ACCESSORS(JSDate, value, Object, kValueOffset)
5915 ACCESSORS(JSDate, cache_stamp, Object, kCacheStampOffset) 5958 ACCESSORS(JSDate, cache_stamp, Object, kCacheStampOffset)
5916 ACCESSORS(JSDate, year, Object, kYearOffset) 5959 ACCESSORS(JSDate, year, Object, kYearOffset)
5917 ACCESSORS(JSDate, month, Object, kMonthOffset) 5960 ACCESSORS(JSDate, month, Object, kMonthOffset)
5918 ACCESSORS(JSDate, day, Object, kDayOffset) 5961 ACCESSORS(JSDate, day, Object, kDayOffset)
5919 ACCESSORS(JSDate, weekday, Object, kWeekdayOffset) 5962 ACCESSORS(JSDate, weekday, Object, kWeekdayOffset)
5920 ACCESSORS(JSDate, hour, Object, kHourOffset) 5963 ACCESSORS(JSDate, hour, Object, kHourOffset)
5921 ACCESSORS(JSDate, min, Object, kMinOffset) 5964 ACCESSORS(JSDate, min, Object, kMinOffset)
5922 ACCESSORS(JSDate, sec, Object, kSecOffset) 5965 ACCESSORS(JSDate, sec, Object, kSecOffset)
5923 5966
5924 5967
5925 JSDate* JSDate::cast(Object* obj) {
5926 ASSERT(obj->IsJSDate());
5927 ASSERT(HeapObject::cast(obj)->Size() == JSDate::kSize);
5928 return reinterpret_cast<JSDate*>(obj);
5929 }
5930
5931
5932 ACCESSORS(JSMessageObject, type, String, kTypeOffset) 5968 ACCESSORS(JSMessageObject, type, String, kTypeOffset)
5933 ACCESSORS(JSMessageObject, arguments, JSArray, kArgumentsOffset) 5969 ACCESSORS(JSMessageObject, arguments, JSArray, kArgumentsOffset)
5934 ACCESSORS(JSMessageObject, script, Object, kScriptOffset) 5970 ACCESSORS(JSMessageObject, script, Object, kScriptOffset)
5935 ACCESSORS(JSMessageObject, stack_frames, Object, kStackFramesOffset) 5971 ACCESSORS(JSMessageObject, stack_frames, Object, kStackFramesOffset)
5936 SMI_ACCESSORS(JSMessageObject, start_position, kStartPositionOffset) 5972 SMI_ACCESSORS(JSMessageObject, start_position, kStartPositionOffset)
5937 SMI_ACCESSORS(JSMessageObject, end_position, kEndPositionOffset) 5973 SMI_ACCESSORS(JSMessageObject, end_position, kEndPositionOffset)
5938 5974
5939 5975
5940 JSMessageObject* JSMessageObject::cast(Object* obj) {
5941 ASSERT(obj->IsJSMessageObject());
5942 ASSERT(HeapObject::cast(obj)->Size() == JSMessageObject::kSize);
5943 return reinterpret_cast<JSMessageObject*>(obj);
5944 }
5945
5946
5947 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) 5976 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset)
5948 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset) 5977 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset)
5949 ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset) 5978 ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset)
5950 ACCESSORS(Code, handler_table, FixedArray, kHandlerTableOffset) 5979 ACCESSORS(Code, handler_table, FixedArray, kHandlerTableOffset)
5951 ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset) 5980 ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset)
5952 ACCESSORS(Code, raw_type_feedback_info, Object, kTypeFeedbackInfoOffset) 5981 ACCESSORS(Code, raw_type_feedback_info, Object, kTypeFeedbackInfoOffset)
5953 ACCESSORS(Code, next_code_link, Object, kNextCodeLinkOffset) 5982 ACCESSORS(Code, next_code_link, Object, kNextCodeLinkOffset)
5954 5983
5955 5984
5956 void Code::WipeOutHeader() { 5985 void Code::WipeOutHeader() {
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after
6995 #undef READ_SHORT_FIELD 7024 #undef READ_SHORT_FIELD
6996 #undef WRITE_SHORT_FIELD 7025 #undef WRITE_SHORT_FIELD
6997 #undef READ_BYTE_FIELD 7026 #undef READ_BYTE_FIELD
6998 #undef WRITE_BYTE_FIELD 7027 #undef WRITE_BYTE_FIELD
6999 #undef NOBARRIER_READ_BYTE_FIELD 7028 #undef NOBARRIER_READ_BYTE_FIELD
7000 #undef NOBARRIER_WRITE_BYTE_FIELD 7029 #undef NOBARRIER_WRITE_BYTE_FIELD
7001 7030
7002 } } // namespace v8::internal 7031 } } // namespace v8::internal
7003 7032
7004 #endif // V8_OBJECTS_INL_H_ 7033 #endif // V8_OBJECTS_INL_H_
OLDNEW
« src/objects.h ('K') | « src/objects.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698