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::IsJSArrayIterator() const { |
| 694 InstanceType instance_type = map()->instance_type(); |
| 695 return (instance_type >= FIRST_ARRAY_ITERATOR_TYPE && |
| 696 instance_type <= LAST_ARRAY_ITERATOR_TYPE); |
| 697 } |
| 698 |
693 TYPE_CHECKER(JSSet, JS_SET_TYPE) | 699 TYPE_CHECKER(JSSet, JS_SET_TYPE) |
694 TYPE_CHECKER(JSMap, JS_MAP_TYPE) | 700 TYPE_CHECKER(JSMap, JS_MAP_TYPE) |
695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) | 701 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) |
696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) | 702 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) |
697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) | 703 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) |
698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) | 704 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) |
699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) | 705 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) |
700 TYPE_CHECKER(Map, MAP_TYPE) | 706 TYPE_CHECKER(Map, MAP_TYPE) |
701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) | 707 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) |
702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) | 708 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) |
(...skipping 2628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3331 CAST_ACCESSOR(JSMessageObject) | 3337 CAST_ACCESSOR(JSMessageObject) |
3332 CAST_ACCESSOR(JSModuleNamespace) | 3338 CAST_ACCESSOR(JSModuleNamespace) |
3333 CAST_ACCESSOR(JSFixedArrayIterator) | 3339 CAST_ACCESSOR(JSFixedArrayIterator) |
3334 CAST_ACCESSOR(JSObject) | 3340 CAST_ACCESSOR(JSObject) |
3335 CAST_ACCESSOR(JSProxy) | 3341 CAST_ACCESSOR(JSProxy) |
3336 CAST_ACCESSOR(JSReceiver) | 3342 CAST_ACCESSOR(JSReceiver) |
3337 CAST_ACCESSOR(JSRegExp) | 3343 CAST_ACCESSOR(JSRegExp) |
3338 CAST_ACCESSOR(JSSet) | 3344 CAST_ACCESSOR(JSSet) |
3339 CAST_ACCESSOR(JSSetIterator) | 3345 CAST_ACCESSOR(JSSetIterator) |
3340 CAST_ACCESSOR(JSStringIterator) | 3346 CAST_ACCESSOR(JSStringIterator) |
| 3347 CAST_ACCESSOR(JSArrayIterator) |
3341 CAST_ACCESSOR(JSTypedArray) | 3348 CAST_ACCESSOR(JSTypedArray) |
3342 CAST_ACCESSOR(JSValue) | 3349 CAST_ACCESSOR(JSValue) |
3343 CAST_ACCESSOR(JSWeakCollection) | 3350 CAST_ACCESSOR(JSWeakCollection) |
3344 CAST_ACCESSOR(JSWeakMap) | 3351 CAST_ACCESSOR(JSWeakMap) |
3345 CAST_ACCESSOR(JSWeakSet) | 3352 CAST_ACCESSOR(JSWeakSet) |
3346 CAST_ACCESSOR(LayoutDescriptor) | 3353 CAST_ACCESSOR(LayoutDescriptor) |
3347 CAST_ACCESSOR(Map) | 3354 CAST_ACCESSOR(Map) |
3348 CAST_ACCESSOR(ModuleInfoEntry) | 3355 CAST_ACCESSOR(ModuleInfoEntry) |
3349 CAST_ACCESSOR(ModuleInfo) | 3356 CAST_ACCESSOR(ModuleInfo) |
3350 CAST_ACCESSOR(Name) | 3357 CAST_ACCESSOR(Name) |
(...skipping 4994 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8345 entry_storage->set(0, *key, SKIP_WRITE_BARRIER); | 8352 entry_storage->set(0, *key, SKIP_WRITE_BARRIER); |
8346 entry_storage->set(1, *value, SKIP_WRITE_BARRIER); | 8353 entry_storage->set(1, *value, SKIP_WRITE_BARRIER); |
8347 } | 8354 } |
8348 return isolate->factory()->NewJSArrayWithElements(entry_storage, | 8355 return isolate->factory()->NewJSArrayWithElements(entry_storage, |
8349 FAST_ELEMENTS, 2); | 8356 FAST_ELEMENTS, 2); |
8350 } | 8357 } |
8351 | 8358 |
8352 ACCESSORS(JSIteratorResult, value, Object, kValueOffset) | 8359 ACCESSORS(JSIteratorResult, value, Object, kValueOffset) |
8353 ACCESSORS(JSIteratorResult, done, Object, kDoneOffset) | 8360 ACCESSORS(JSIteratorResult, done, Object, kDoneOffset) |
8354 | 8361 |
| 8362 ACCESSORS(JSArrayIterator, object, Object, kIteratedObjectOffset) |
| 8363 ACCESSORS(JSArrayIterator, index, Object, kNextIndexOffset) |
| 8364 ACCESSORS(JSArrayIterator, object_map, Object, kIteratedObjectMapOffset) |
| 8365 |
8355 ACCESSORS(JSStringIterator, string, String, kStringOffset) | 8366 ACCESSORS(JSStringIterator, string, String, kStringOffset) |
8356 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) | 8367 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) |
8357 | 8368 |
8358 #undef TYPE_CHECKER | 8369 #undef TYPE_CHECKER |
8359 #undef CAST_ACCESSOR | 8370 #undef CAST_ACCESSOR |
8360 #undef INT_ACCESSORS | 8371 #undef INT_ACCESSORS |
8361 #undef ACCESSORS | 8372 #undef ACCESSORS |
8362 #undef SMI_ACCESSORS | 8373 #undef SMI_ACCESSORS |
8363 #undef SYNCHRONIZED_SMI_ACCESSORS | 8374 #undef SYNCHRONIZED_SMI_ACCESSORS |
8364 #undef NOBARRIER_SMI_ACCESSORS | 8375 #undef NOBARRIER_SMI_ACCESSORS |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8398 #undef WRITE_INT64_FIELD | 8409 #undef WRITE_INT64_FIELD |
8399 #undef READ_BYTE_FIELD | 8410 #undef READ_BYTE_FIELD |
8400 #undef WRITE_BYTE_FIELD | 8411 #undef WRITE_BYTE_FIELD |
8401 #undef NOBARRIER_READ_BYTE_FIELD | 8412 #undef NOBARRIER_READ_BYTE_FIELD |
8402 #undef NOBARRIER_WRITE_BYTE_FIELD | 8413 #undef NOBARRIER_WRITE_BYTE_FIELD |
8403 | 8414 |
8404 } // namespace internal | 8415 } // namespace internal |
8405 } // namespace v8 | 8416 } // namespace v8 |
8406 | 8417 |
8407 #endif // V8_OBJECTS_INL_H_ | 8418 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |