| 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 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 return map()->instance_type() >= FIRST_JS_RECEIVER_TYPE; | 683 return map()->instance_type() >= FIRST_JS_RECEIVER_TYPE; |
| 684 } | 684 } |
| 685 | 685 |
| 686 bool HeapObject::IsJSObject() const { | 686 bool HeapObject::IsJSObject() const { |
| 687 STATIC_ASSERT(LAST_JS_OBJECT_TYPE == LAST_TYPE); | 687 STATIC_ASSERT(LAST_JS_OBJECT_TYPE == LAST_TYPE); |
| 688 return map()->IsJSObjectMap(); | 688 return map()->IsJSObjectMap(); |
| 689 } | 689 } |
| 690 | 690 |
| 691 bool HeapObject::IsJSProxy() const { return map()->IsJSProxyMap(); } | 691 bool HeapObject::IsJSProxy() const { return map()->IsJSProxyMap(); } |
| 692 | 692 |
| 693 bool HeapObject::IsJSTypedArrayKeyIterator() const { |
| 694 return map()->instance_type() == JS_TYPED_ARRAY_KEY_ITERATOR_TYPE; |
| 695 } |
| 696 |
| 697 bool HeapObject::IsJSTypedArrayValueIterator() const { |
| 698 InstanceType instance_type = map()->instance_type(); |
| 699 return instance_type >= FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE && |
| 700 instance_type <= LAST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE; |
| 701 } |
| 702 |
| 703 bool HeapObject::IsJSTypedArrayKeyValueIterator() const { |
| 704 InstanceType instance_type = map()->instance_type(); |
| 705 return instance_type >= FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE && |
| 706 instance_type <= LAST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE; |
| 707 } |
| 708 |
| 709 bool HeapObject::IsJSTypedArrayIterator() const { |
| 710 return (IsJSTypedArrayKeyIterator() || IsJSTypedArrayValueIterator() || |
| 711 IsJSTypedArrayKeyValueIterator()); |
| 712 } |
| 713 |
| 714 bool HeapObject::IsJSArrayKeyIterator() const { |
| 715 return map()->instance_type() == JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE; |
| 716 } |
| 717 |
| 718 bool HeapObject::IsJSArrayValueIterator() const { |
| 719 InstanceType instance_type = map()->instance_type(); |
| 720 return instance_type >= FIRST_JS_ARRAY_VALUE_ITERATOR_TYPE && |
| 721 instance_type <= LAST_JS_ARRAY_VALUE_ITERATOR_TYPE; |
| 722 } |
| 723 |
| 724 bool HeapObject::IsJSArrayKeyValueIterator() const { |
| 725 InstanceType instance_type = map()->instance_type(); |
| 726 return instance_type >= FIRST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE && |
| 727 instance_type <= LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE; |
| 728 } |
| 729 |
| 730 bool HeapObject::IsJSArrayIterator() const { |
| 731 return (IsJSArrayKeyIterator() || IsJSArrayValueIterator() || |
| 732 IsJSArrayKeyValueIterator()); |
| 733 } |
| 734 |
| 693 TYPE_CHECKER(JSSet, JS_SET_TYPE) | 735 TYPE_CHECKER(JSSet, JS_SET_TYPE) |
| 694 TYPE_CHECKER(JSMap, JS_MAP_TYPE) | 736 TYPE_CHECKER(JSMap, JS_MAP_TYPE) |
| 695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) | 737 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) |
| 696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) | 738 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) |
| 697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) | 739 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) |
| 698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) | 740 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) |
| 699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) | 741 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) |
| 700 TYPE_CHECKER(Map, MAP_TYPE) | 742 TYPE_CHECKER(Map, MAP_TYPE) |
| 701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) | 743 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) |
| 702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) | 744 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) |
| (...skipping 2580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3283 CAST_ACCESSOR(JSMapIterator) | 3325 CAST_ACCESSOR(JSMapIterator) |
| 3284 CAST_ACCESSOR(JSMessageObject) | 3326 CAST_ACCESSOR(JSMessageObject) |
| 3285 CAST_ACCESSOR(JSModuleNamespace) | 3327 CAST_ACCESSOR(JSModuleNamespace) |
| 3286 CAST_ACCESSOR(JSObject) | 3328 CAST_ACCESSOR(JSObject) |
| 3287 CAST_ACCESSOR(JSProxy) | 3329 CAST_ACCESSOR(JSProxy) |
| 3288 CAST_ACCESSOR(JSReceiver) | 3330 CAST_ACCESSOR(JSReceiver) |
| 3289 CAST_ACCESSOR(JSRegExp) | 3331 CAST_ACCESSOR(JSRegExp) |
| 3290 CAST_ACCESSOR(JSSet) | 3332 CAST_ACCESSOR(JSSet) |
| 3291 CAST_ACCESSOR(JSSetIterator) | 3333 CAST_ACCESSOR(JSSetIterator) |
| 3292 CAST_ACCESSOR(JSStringIterator) | 3334 CAST_ACCESSOR(JSStringIterator) |
| 3335 CAST_ACCESSOR(JSTypedArrayIterator) |
| 3336 CAST_ACCESSOR(JSArrayIterator) |
| 3293 CAST_ACCESSOR(JSTypedArray) | 3337 CAST_ACCESSOR(JSTypedArray) |
| 3294 CAST_ACCESSOR(JSValue) | 3338 CAST_ACCESSOR(JSValue) |
| 3295 CAST_ACCESSOR(JSWeakCollection) | 3339 CAST_ACCESSOR(JSWeakCollection) |
| 3296 CAST_ACCESSOR(JSWeakMap) | 3340 CAST_ACCESSOR(JSWeakMap) |
| 3297 CAST_ACCESSOR(JSWeakSet) | 3341 CAST_ACCESSOR(JSWeakSet) |
| 3298 CAST_ACCESSOR(LayoutDescriptor) | 3342 CAST_ACCESSOR(LayoutDescriptor) |
| 3299 CAST_ACCESSOR(Map) | 3343 CAST_ACCESSOR(Map) |
| 3300 CAST_ACCESSOR(ModuleInfoEntry) | 3344 CAST_ACCESSOR(ModuleInfoEntry) |
| 3301 CAST_ACCESSOR(ModuleInfo) | 3345 CAST_ACCESSOR(ModuleInfo) |
| 3302 CAST_ACCESSOR(Name) | 3346 CAST_ACCESSOR(Name) |
| (...skipping 4974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8277 entry_storage->set(0, *key, SKIP_WRITE_BARRIER); | 8321 entry_storage->set(0, *key, SKIP_WRITE_BARRIER); |
| 8278 entry_storage->set(1, *value, SKIP_WRITE_BARRIER); | 8322 entry_storage->set(1, *value, SKIP_WRITE_BARRIER); |
| 8279 } | 8323 } |
| 8280 return isolate->factory()->NewJSArrayWithElements(entry_storage, | 8324 return isolate->factory()->NewJSArrayWithElements(entry_storage, |
| 8281 FAST_ELEMENTS, 2); | 8325 FAST_ELEMENTS, 2); |
| 8282 } | 8326 } |
| 8283 | 8327 |
| 8284 ACCESSORS(JSIteratorResult, value, Object, kValueOffset) | 8328 ACCESSORS(JSIteratorResult, value, Object, kValueOffset) |
| 8285 ACCESSORS(JSIteratorResult, done, Object, kDoneOffset) | 8329 ACCESSORS(JSIteratorResult, done, Object, kDoneOffset) |
| 8286 | 8330 |
| 8331 ACCESSORS(JSTypedArrayIterator, object, Object, kIteratedObjectOffset) |
| 8332 SMI_ACCESSORS(JSTypedArrayIterator, index, kNextIndexOffset) |
| 8333 |
| 8334 ACCESSORS(JSArrayIterator, object, Object, kIteratedObjectOffset) |
| 8335 ACCESSORS(JSArrayIterator, index, Object, kNextIndexOffset) |
| 8336 ACCESSORS(JSArrayIterator, map, Map, kIteratedObjectMapOffset) |
| 8337 |
| 8287 ACCESSORS(JSStringIterator, string, String, kStringOffset) | 8338 ACCESSORS(JSStringIterator, string, String, kStringOffset) |
| 8288 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) | 8339 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) |
| 8289 | 8340 |
| 8290 #undef TYPE_CHECKER | 8341 #undef TYPE_CHECKER |
| 8291 #undef CAST_ACCESSOR | 8342 #undef CAST_ACCESSOR |
| 8292 #undef INT_ACCESSORS | 8343 #undef INT_ACCESSORS |
| 8293 #undef ACCESSORS | 8344 #undef ACCESSORS |
| 8294 #undef SMI_ACCESSORS | 8345 #undef SMI_ACCESSORS |
| 8295 #undef SYNCHRONIZED_SMI_ACCESSORS | 8346 #undef SYNCHRONIZED_SMI_ACCESSORS |
| 8296 #undef NOBARRIER_SMI_ACCESSORS | 8347 #undef NOBARRIER_SMI_ACCESSORS |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8330 #undef WRITE_INT64_FIELD | 8381 #undef WRITE_INT64_FIELD |
| 8331 #undef READ_BYTE_FIELD | 8382 #undef READ_BYTE_FIELD |
| 8332 #undef WRITE_BYTE_FIELD | 8383 #undef WRITE_BYTE_FIELD |
| 8333 #undef NOBARRIER_READ_BYTE_FIELD | 8384 #undef NOBARRIER_READ_BYTE_FIELD |
| 8334 #undef NOBARRIER_WRITE_BYTE_FIELD | 8385 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 8335 | 8386 |
| 8336 } // namespace internal | 8387 } // namespace internal |
| 8337 } // namespace v8 | 8388 } // namespace v8 |
| 8338 | 8389 |
| 8339 #endif // V8_OBJECTS_INL_H_ | 8390 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |