Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 09e5ebbe295d58e827a134ae8b3fafeb667551b6..0e5d37f33ad43aae20dcab1d37349ac7a41a9e2d 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -690,6 +690,48 @@ bool HeapObject::IsJSObject() const { |
bool HeapObject::IsJSProxy() const { return map()->IsJSProxyMap(); } |
+bool HeapObject::IsJSTypedArrayKeyIterator() const { |
+ return map()->instance_type() == JS_TYPED_ARRAY_KEY_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSTypedArrayValueIterator() const { |
+ InstanceType instance_type = map()->instance_type(); |
+ return instance_type >= FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE && |
+ instance_type <= LAST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSTypedArrayKeyValueIterator() const { |
+ InstanceType instance_type = map()->instance_type(); |
+ return instance_type >= FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE && |
+ instance_type <= LAST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSTypedArrayIterator() const { |
+ return (IsJSTypedArrayKeyIterator() || IsJSTypedArrayValueIterator() || |
+ IsJSTypedArrayKeyValueIterator()); |
+} |
+ |
+bool HeapObject::IsJSArrayKeyIterator() const { |
+ return map()->instance_type() == JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSArrayValueIterator() const { |
+ InstanceType instance_type = map()->instance_type(); |
+ return instance_type >= FIRST_JS_ARRAY_VALUE_ITERATOR_TYPE && |
+ instance_type <= LAST_JS_ARRAY_VALUE_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSArrayKeyValueIterator() const { |
+ InstanceType instance_type = map()->instance_type(); |
+ return instance_type >= FIRST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE && |
+ instance_type <= LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE; |
+} |
+ |
+bool HeapObject::IsJSArrayIterator() const { |
+ return (IsJSArrayKeyIterator() || IsJSArrayValueIterator() || |
+ IsJSArrayKeyValueIterator()); |
+} |
+ |
TYPE_CHECKER(JSSet, JS_SET_TYPE) |
TYPE_CHECKER(JSMap, JS_MAP_TYPE) |
TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) |
@@ -3290,6 +3332,8 @@ CAST_ACCESSOR(JSRegExp) |
CAST_ACCESSOR(JSSet) |
CAST_ACCESSOR(JSSetIterator) |
CAST_ACCESSOR(JSStringIterator) |
+CAST_ACCESSOR(JSTypedArrayIterator) |
+CAST_ACCESSOR(JSArrayIterator) |
CAST_ACCESSOR(JSTypedArray) |
CAST_ACCESSOR(JSValue) |
CAST_ACCESSOR(JSWeakCollection) |
@@ -8284,6 +8328,13 @@ static inline Handle<Object> MakeEntryPair(Isolate* isolate, Handle<Name> key, |
ACCESSORS(JSIteratorResult, value, Object, kValueOffset) |
ACCESSORS(JSIteratorResult, done, Object, kDoneOffset) |
+ACCESSORS(JSTypedArrayIterator, object, Object, kIteratedObjectOffset) |
+SMI_ACCESSORS(JSTypedArrayIterator, index, kNextIndexOffset) |
+ |
+ACCESSORS(JSArrayIterator, object, Object, kIteratedObjectOffset) |
+ACCESSORS(JSArrayIterator, index, Object, kNextIndexOffset) |
+ACCESSORS(JSArrayIterator, map, Map, kIteratedObjectMapOffset) |
+ |
ACCESSORS(JSStringIterator, string, String, kStringOffset) |
SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset) |