| OLD | NEW |
| 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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 TYPE_CHECKER(JSPromise, JS_PROMISE_TYPE) | 169 TYPE_CHECKER(JSPromise, JS_PROMISE_TYPE) |
| 170 TYPE_CHECKER(JSRegExp, JS_REGEXP_TYPE) | 170 TYPE_CHECKER(JSRegExp, JS_REGEXP_TYPE) |
| 171 TYPE_CHECKER(JSSet, JS_SET_TYPE) | 171 TYPE_CHECKER(JSSet, JS_SET_TYPE) |
| 172 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) | 172 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) |
| 173 TYPE_CHECKER(JSAsyncFromSyncIterator, JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) | 173 TYPE_CHECKER(JSAsyncFromSyncIterator, JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) |
| 174 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE) | 174 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE) |
| 175 TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE) | 175 TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE) |
| 176 TYPE_CHECKER(JSValue, JS_VALUE_TYPE) | 176 TYPE_CHECKER(JSValue, JS_VALUE_TYPE) |
| 177 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) | 177 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) |
| 178 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) | 178 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) |
| 179 TYPE_CHECKER(JSWeakRef, JS_WEAK_REF_TYPE) |
| 179 TYPE_CHECKER(Map, MAP_TYPE) | 180 TYPE_CHECKER(Map, MAP_TYPE) |
| 180 TYPE_CHECKER(MutableHeapNumber, MUTABLE_HEAP_NUMBER_TYPE) | 181 TYPE_CHECKER(MutableHeapNumber, MUTABLE_HEAP_NUMBER_TYPE) |
| 181 TYPE_CHECKER(Oddball, ODDBALL_TYPE) | 182 TYPE_CHECKER(Oddball, ODDBALL_TYPE) |
| 182 TYPE_CHECKER(PropertyCell, PROPERTY_CELL_TYPE) | 183 TYPE_CHECKER(PropertyCell, PROPERTY_CELL_TYPE) |
| 183 TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE) | 184 TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE) |
| 184 TYPE_CHECKER(SourcePositionTableWithFrameCache, TUPLE2_TYPE) | 185 TYPE_CHECKER(SourcePositionTableWithFrameCache, TUPLE2_TYPE) |
| 185 TYPE_CHECKER(Symbol, SYMBOL_TYPE) | 186 TYPE_CHECKER(Symbol, SYMBOL_TYPE) |
| 186 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) | 187 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) |
| 187 TYPE_CHECKER(TypeFeedbackInfo, TUPLE3_TYPE) | 188 TYPE_CHECKER(TypeFeedbackInfo, TUPLE3_TYPE) |
| 188 TYPE_CHECKER(WeakCell, WEAK_CELL_TYPE) | 189 TYPE_CHECKER(WeakCell, WEAK_CELL_TYPE) |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 363 |
| 363 bool HeapObject::IsJSProxy() const { return map()->IsJSProxyMap(); } | 364 bool HeapObject::IsJSProxy() const { return map()->IsJSProxyMap(); } |
| 364 | 365 |
| 365 bool HeapObject::IsJSArrayIterator() const { | 366 bool HeapObject::IsJSArrayIterator() const { |
| 366 InstanceType instance_type = map()->instance_type(); | 367 InstanceType instance_type = map()->instance_type(); |
| 367 return (instance_type >= FIRST_ARRAY_ITERATOR_TYPE && | 368 return (instance_type >= FIRST_ARRAY_ITERATOR_TYPE && |
| 368 instance_type <= LAST_ARRAY_ITERATOR_TYPE); | 369 instance_type <= LAST_ARRAY_ITERATOR_TYPE); |
| 369 } | 370 } |
| 370 | 371 |
| 371 bool HeapObject::IsJSWeakCollection() const { | 372 bool HeapObject::IsJSWeakCollection() const { |
| 372 return IsJSWeakMap() || IsJSWeakSet(); | 373 return IsJSWeakMap() || IsJSWeakSet() || IsJSWeakRef(); |
| 373 } | 374 } |
| 374 | 375 |
| 375 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } | 376 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } |
| 376 | 377 |
| 377 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } | 378 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } |
| 378 | 379 |
| 379 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } | 380 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } |
| 380 | 381 |
| 381 bool HeapObject::IsArrayList() const { return IsFixedArray(); } | 382 bool HeapObject::IsArrayList() const { return IsFixedArray(); } |
| 382 | 383 |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 CAST_ACCESSOR(JSSetIterator) | 671 CAST_ACCESSOR(JSSetIterator) |
| 671 CAST_ACCESSOR(JSSloppyArgumentsObject) | 672 CAST_ACCESSOR(JSSloppyArgumentsObject) |
| 672 CAST_ACCESSOR(JSAsyncFromSyncIterator) | 673 CAST_ACCESSOR(JSAsyncFromSyncIterator) |
| 673 CAST_ACCESSOR(JSStringIterator) | 674 CAST_ACCESSOR(JSStringIterator) |
| 674 CAST_ACCESSOR(JSArrayIterator) | 675 CAST_ACCESSOR(JSArrayIterator) |
| 675 CAST_ACCESSOR(JSTypedArray) | 676 CAST_ACCESSOR(JSTypedArray) |
| 676 CAST_ACCESSOR(JSValue) | 677 CAST_ACCESSOR(JSValue) |
| 677 CAST_ACCESSOR(JSWeakCollection) | 678 CAST_ACCESSOR(JSWeakCollection) |
| 678 CAST_ACCESSOR(JSWeakMap) | 679 CAST_ACCESSOR(JSWeakMap) |
| 679 CAST_ACCESSOR(JSWeakSet) | 680 CAST_ACCESSOR(JSWeakSet) |
| 681 CAST_ACCESSOR(JSWeakRef) |
| 680 CAST_ACCESSOR(LayoutDescriptor) | 682 CAST_ACCESSOR(LayoutDescriptor) |
| 681 CAST_ACCESSOR(Map) | 683 CAST_ACCESSOR(Map) |
| 682 CAST_ACCESSOR(ModuleInfo) | 684 CAST_ACCESSOR(ModuleInfo) |
| 683 CAST_ACCESSOR(Name) | 685 CAST_ACCESSOR(Name) |
| 684 CAST_ACCESSOR(NameDictionary) | 686 CAST_ACCESSOR(NameDictionary) |
| 685 CAST_ACCESSOR(NormalizedMapCache) | 687 CAST_ACCESSOR(NormalizedMapCache) |
| 686 CAST_ACCESSOR(Object) | 688 CAST_ACCESSOR(Object) |
| 687 CAST_ACCESSOR(ObjectHashTable) | 689 CAST_ACCESSOR(ObjectHashTable) |
| 688 CAST_ACCESSOR(ObjectHashSet) | 690 CAST_ACCESSOR(ObjectHashSet) |
| 689 CAST_ACCESSOR(Oddball) | 691 CAST_ACCESSOR(Oddball) |
| (...skipping 1439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2129 case JS_MAP_TYPE: | 2131 case JS_MAP_TYPE: |
| 2130 return JSMap::kSize; | 2132 return JSMap::kSize; |
| 2131 case JS_SET_ITERATOR_TYPE: | 2133 case JS_SET_ITERATOR_TYPE: |
| 2132 return JSSetIterator::kSize; | 2134 return JSSetIterator::kSize; |
| 2133 case JS_MAP_ITERATOR_TYPE: | 2135 case JS_MAP_ITERATOR_TYPE: |
| 2134 return JSMapIterator::kSize; | 2136 return JSMapIterator::kSize; |
| 2135 case JS_WEAK_MAP_TYPE: | 2137 case JS_WEAK_MAP_TYPE: |
| 2136 return JSWeakMap::kSize; | 2138 return JSWeakMap::kSize; |
| 2137 case JS_WEAK_SET_TYPE: | 2139 case JS_WEAK_SET_TYPE: |
| 2138 return JSWeakSet::kSize; | 2140 return JSWeakSet::kSize; |
| 2141 case JS_WEAK_REF_TYPE: |
| 2142 return JSWeakRef::kSize; |
| 2139 case JS_PROMISE_CAPABILITY_TYPE: | 2143 case JS_PROMISE_CAPABILITY_TYPE: |
| 2140 return JSPromiseCapability::kSize; | 2144 return JSPromiseCapability::kSize; |
| 2141 case JS_PROMISE_TYPE: | 2145 case JS_PROMISE_TYPE: |
| 2142 return JSPromise::kSize; | 2146 return JSPromise::kSize; |
| 2143 case JS_REGEXP_TYPE: | 2147 case JS_REGEXP_TYPE: |
| 2144 return JSRegExp::kSize; | 2148 return JSRegExp::kSize; |
| 2145 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: | 2149 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: |
| 2146 return JSObject::kHeaderSize; | 2150 return JSObject::kHeaderSize; |
| 2147 case JS_MESSAGE_OBJECT_TYPE: | 2151 case JS_MESSAGE_OBJECT_TYPE: |
| 2148 return JSMessageObject::kSize; | 2152 return JSMessageObject::kSize; |
| (...skipping 4505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6654 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(table, Object, kTableOffset) | 6658 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(table, Object, kTableOffset) |
| 6655 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(index, Object, kIndexOffset) | 6659 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(index, Object, kIndexOffset) |
| 6656 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(kind, Object, kKindOffset) | 6660 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(kind, Object, kKindOffset) |
| 6657 | 6661 |
| 6658 #undef ORDERED_HASH_TABLE_ITERATOR_ACCESSORS | 6662 #undef ORDERED_HASH_TABLE_ITERATOR_ACCESSORS |
| 6659 | 6663 |
| 6660 | 6664 |
| 6661 ACCESSORS(JSWeakCollection, table, Object, kTableOffset) | 6665 ACCESSORS(JSWeakCollection, table, Object, kTableOffset) |
| 6662 ACCESSORS(JSWeakCollection, next, Object, kNextOffset) | 6666 ACCESSORS(JSWeakCollection, next, Object, kNextOffset) |
| 6663 | 6667 |
| 6668 ACCESSORS(JSWeakRef, executor, JSFunction, kExecutorOffset) |
| 6669 ACCESSORS(JSWeakRef, target, WeakCell, kTargetOffset) |
| 6670 ACCESSORS(JSWeakRef, holdings, Object, kHoldingsOffset) |
| 6671 SMI_ACCESSORS(JSWeakRef, flags, kFlagsOffset) |
| 6672 BOOL_ACCESSORS(JSWeakRef, flags, held, kHeldBit) |
| 6673 BOOL_ACCESSORS(JSWeakRef, flags, queued, kQueuedBit) |
| 6664 | 6674 |
| 6665 Address Foreign::foreign_address() { | 6675 Address Foreign::foreign_address() { |
| 6666 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset)); | 6676 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset)); |
| 6667 } | 6677 } |
| 6668 | 6678 |
| 6669 | 6679 |
| 6670 void Foreign::set_foreign_address(Address value) { | 6680 void Foreign::set_foreign_address(Address value) { |
| 6671 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); | 6681 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); |
| 6672 } | 6682 } |
| 6673 | 6683 |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6886 Code::kHeaderSize); | 6896 Code::kHeaderSize); |
| 6887 return instruction_size() + Code::kHeaderSize; | 6897 return instruction_size() + Code::kHeaderSize; |
| 6888 } | 6898 } |
| 6889 | 6899 |
| 6890 | 6900 |
| 6891 int Code::CodeSize() { return SizeFor(body_size()); } | 6901 int Code::CodeSize() { return SizeFor(body_size()); } |
| 6892 | 6902 |
| 6893 | 6903 |
| 6894 ACCESSORS(JSArray, length, Object, kLengthOffset) | 6904 ACCESSORS(JSArray, length, Object, kLengthOffset) |
| 6895 | 6905 |
| 6896 | |
| 6897 void* JSArrayBuffer::backing_store() const { | 6906 void* JSArrayBuffer::backing_store() const { |
| 6898 intptr_t ptr = READ_INTPTR_FIELD(this, kBackingStoreOffset); | 6907 intptr_t ptr = READ_INTPTR_FIELD(this, kBackingStoreOffset); |
| 6899 return reinterpret_cast<void*>(ptr); | 6908 return reinterpret_cast<void*>(ptr); |
| 6900 } | 6909 } |
| 6901 | 6910 |
| 6902 | 6911 |
| 6903 void JSArrayBuffer::set_backing_store(void* value, WriteBarrierMode mode) { | 6912 void JSArrayBuffer::set_backing_store(void* value, WriteBarrierMode mode) { |
| 6904 intptr_t ptr = reinterpret_cast<intptr_t>(value); | 6913 intptr_t ptr = reinterpret_cast<intptr_t>(value); |
| 6905 WRITE_INTPTR_FIELD(this, kBackingStoreOffset, ptr); | 6914 WRITE_INTPTR_FIELD(this, kBackingStoreOffset, ptr); |
| 6906 } | 6915 } |
| (...skipping 1468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8375 #undef WRITE_BYTE_FIELD | 8384 #undef WRITE_BYTE_FIELD |
| 8376 #undef NOBARRIER_READ_BYTE_FIELD | 8385 #undef NOBARRIER_READ_BYTE_FIELD |
| 8377 #undef NOBARRIER_WRITE_BYTE_FIELD | 8386 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 8378 | 8387 |
| 8379 } // namespace internal | 8388 } // namespace internal |
| 8380 } // namespace v8 | 8389 } // namespace v8 |
| 8381 | 8390 |
| 8382 #include "src/objects/object-macros-undef.h" | 8391 #include "src/objects/object-macros-undef.h" |
| 8383 | 8392 |
| 8384 #endif // V8_OBJECTS_INL_H_ | 8393 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |