| 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)
|
|
|
|
|