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 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) | 695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) |
696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) | 696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) |
697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) | 697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) |
698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) | 698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) |
699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) | 699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) |
700 TYPE_CHECKER(Map, MAP_TYPE) | 700 TYPE_CHECKER(Map, MAP_TYPE) |
701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) | 701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) |
702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) | 702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) |
703 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) | 703 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) |
704 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE) | 704 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE) |
| 705 TYPE_CHECKER(JSFixedArrayIterator, JS_FIXED_ARRAY_ITERATOR_TYPE) |
705 | 706 |
706 bool HeapObject::IsJSWeakCollection() const { | 707 bool HeapObject::IsJSWeakCollection() const { |
707 return IsJSWeakMap() || IsJSWeakSet(); | 708 return IsJSWeakMap() || IsJSWeakSet(); |
708 } | 709 } |
709 | 710 |
710 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } | 711 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } |
711 | 712 |
712 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } | 713 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } |
713 | 714 |
714 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } | 715 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } |
(...skipping 1392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2107 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: | 2108 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: |
2108 return JSObject::kHeaderSize; | 2109 return JSObject::kHeaderSize; |
2109 case JS_MESSAGE_OBJECT_TYPE: | 2110 case JS_MESSAGE_OBJECT_TYPE: |
2110 return JSMessageObject::kSize; | 2111 return JSMessageObject::kSize; |
2111 case JS_ARGUMENTS_TYPE: | 2112 case JS_ARGUMENTS_TYPE: |
2112 return JSArgumentsObject::kHeaderSize; | 2113 return JSArgumentsObject::kHeaderSize; |
2113 case JS_ERROR_TYPE: | 2114 case JS_ERROR_TYPE: |
2114 return JSObject::kHeaderSize; | 2115 return JSObject::kHeaderSize; |
2115 case JS_STRING_ITERATOR_TYPE: | 2116 case JS_STRING_ITERATOR_TYPE: |
2116 return JSStringIterator::kSize; | 2117 return JSStringIterator::kSize; |
| 2118 case JS_FIXED_ARRAY_ITERATOR_TYPE: |
| 2119 return JSFixedArrayIterator::kSize; |
2117 default: | 2120 default: |
2118 UNREACHABLE(); | 2121 UNREACHABLE(); |
2119 return 0; | 2122 return 0; |
2120 } | 2123 } |
2121 } | 2124 } |
2122 | 2125 |
2123 | 2126 |
2124 int JSObject::GetInternalFieldCount(Map* map) { | 2127 int JSObject::GetInternalFieldCount(Map* map) { |
2125 int instance_size = map->instance_size(); | 2128 int instance_size = map->instance_size(); |
2126 if (instance_size == kVariableSizeSentinel) return 0; | 2129 if (instance_size == kVariableSizeSentinel) return 0; |
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3271 CAST_ACCESSOR(JSDataView) | 3274 CAST_ACCESSOR(JSDataView) |
3272 CAST_ACCESSOR(JSDate) | 3275 CAST_ACCESSOR(JSDate) |
3273 CAST_ACCESSOR(JSFunction) | 3276 CAST_ACCESSOR(JSFunction) |
3274 CAST_ACCESSOR(JSGeneratorObject) | 3277 CAST_ACCESSOR(JSGeneratorObject) |
3275 CAST_ACCESSOR(JSGlobalObject) | 3278 CAST_ACCESSOR(JSGlobalObject) |
3276 CAST_ACCESSOR(JSGlobalProxy) | 3279 CAST_ACCESSOR(JSGlobalProxy) |
3277 CAST_ACCESSOR(JSMap) | 3280 CAST_ACCESSOR(JSMap) |
3278 CAST_ACCESSOR(JSMapIterator) | 3281 CAST_ACCESSOR(JSMapIterator) |
3279 CAST_ACCESSOR(JSMessageObject) | 3282 CAST_ACCESSOR(JSMessageObject) |
3280 CAST_ACCESSOR(JSModuleNamespace) | 3283 CAST_ACCESSOR(JSModuleNamespace) |
| 3284 CAST_ACCESSOR(JSFixedArrayIterator) |
3281 CAST_ACCESSOR(JSObject) | 3285 CAST_ACCESSOR(JSObject) |
3282 CAST_ACCESSOR(JSProxy) | 3286 CAST_ACCESSOR(JSProxy) |
3283 CAST_ACCESSOR(JSReceiver) | 3287 CAST_ACCESSOR(JSReceiver) |
3284 CAST_ACCESSOR(JSRegExp) | 3288 CAST_ACCESSOR(JSRegExp) |
3285 CAST_ACCESSOR(JSSet) | 3289 CAST_ACCESSOR(JSSet) |
3286 CAST_ACCESSOR(JSSetIterator) | 3290 CAST_ACCESSOR(JSSetIterator) |
3287 CAST_ACCESSOR(JSStringIterator) | 3291 CAST_ACCESSOR(JSStringIterator) |
3288 CAST_ACCESSOR(JSTypedArray) | 3292 CAST_ACCESSOR(JSTypedArray) |
3289 CAST_ACCESSOR(JSValue) | 3293 CAST_ACCESSOR(JSValue) |
3290 CAST_ACCESSOR(JSWeakCollection) | 3294 CAST_ACCESSOR(JSWeakCollection) |
(...skipping 2411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5702 SMI_ACCESSORS(PrototypeInfo, registry_slot, kRegistrySlotOffset) | 5706 SMI_ACCESSORS(PrototypeInfo, registry_slot, kRegistrySlotOffset) |
5703 ACCESSORS(PrototypeInfo, validity_cell, Object, kValidityCellOffset) | 5707 ACCESSORS(PrototypeInfo, validity_cell, Object, kValidityCellOffset) |
5704 SMI_ACCESSORS(PrototypeInfo, bit_field, kBitFieldOffset) | 5708 SMI_ACCESSORS(PrototypeInfo, bit_field, kBitFieldOffset) |
5705 BOOL_ACCESSORS(PrototypeInfo, bit_field, should_be_fast_map, kShouldBeFastBit) | 5709 BOOL_ACCESSORS(PrototypeInfo, bit_field, should_be_fast_map, kShouldBeFastBit) |
5706 | 5710 |
5707 ACCESSORS(ContextExtension, scope_info, ScopeInfo, kScopeInfoOffset) | 5711 ACCESSORS(ContextExtension, scope_info, ScopeInfo, kScopeInfoOffset) |
5708 ACCESSORS(ContextExtension, extension, Object, kExtensionOffset) | 5712 ACCESSORS(ContextExtension, extension, Object, kExtensionOffset) |
5709 | 5713 |
5710 ACCESSORS(JSModuleNamespace, module, Module, kModuleOffset) | 5714 ACCESSORS(JSModuleNamespace, module, Module, kModuleOffset) |
5711 | 5715 |
| 5716 ACCESSORS(JSFixedArrayIterator, next, JSFunction, kNextOffset) |
| 5717 ACCESSORS(JSFixedArrayIterator, array, FixedArray, kArrayOffset) |
| 5718 SMI_ACCESSORS(JSFixedArrayIterator, index, kIndexOffset) |
| 5719 |
5712 ACCESSORS(Module, code, Object, kCodeOffset) | 5720 ACCESSORS(Module, code, Object, kCodeOffset) |
5713 ACCESSORS(Module, exports, ObjectHashTable, kExportsOffset) | 5721 ACCESSORS(Module, exports, ObjectHashTable, kExportsOffset) |
5714 ACCESSORS(Module, module_namespace, HeapObject, kModuleNamespaceOffset) | 5722 ACCESSORS(Module, module_namespace, HeapObject, kModuleNamespaceOffset) |
5715 ACCESSORS(Module, requested_modules, FixedArray, kRequestedModulesOffset) | 5723 ACCESSORS(Module, requested_modules, FixedArray, kRequestedModulesOffset) |
5716 SMI_ACCESSORS(Module, flags, kFlagsOffset) | 5724 SMI_ACCESSORS(Module, flags, kFlagsOffset) |
5717 BOOL_ACCESSORS(Module, flags, evaluated, kEvaluatedBit) | 5725 BOOL_ACCESSORS(Module, flags, evaluated, kEvaluatedBit) |
5718 ACCESSORS(Module, embedder_data, Object, kEmbedderDataOffset) | 5726 ACCESSORS(Module, embedder_data, Object, kEmbedderDataOffset) |
5719 SMI_ACCESSORS(Module, hash, kHashOffset) | 5727 SMI_ACCESSORS(Module, hash, kHashOffset) |
5720 | 5728 |
5721 SharedFunctionInfo* Module::shared() const { | 5729 SharedFunctionInfo* Module::shared() const { |
(...skipping 2604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8326 #undef WRITE_INT64_FIELD | 8334 #undef WRITE_INT64_FIELD |
8327 #undef READ_BYTE_FIELD | 8335 #undef READ_BYTE_FIELD |
8328 #undef WRITE_BYTE_FIELD | 8336 #undef WRITE_BYTE_FIELD |
8329 #undef NOBARRIER_READ_BYTE_FIELD | 8337 #undef NOBARRIER_READ_BYTE_FIELD |
8330 #undef NOBARRIER_WRITE_BYTE_FIELD | 8338 #undef NOBARRIER_WRITE_BYTE_FIELD |
8331 | 8339 |
8332 } // namespace internal | 8340 } // namespace internal |
8333 } // namespace v8 | 8341 } // namespace v8 |
8334 | 8342 |
8335 #endif // V8_OBJECTS_INL_H_ | 8343 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |