| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index d24451898061e709b49fe888e804404b48a5208b..8e563ab82d8c7702be91be0fa19b0d21d535e21d 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -72,6 +72,7 @@
|
| // - JSDate
|
| // - JSMessageObject
|
| // - JSModuleNamespace
|
| +// - JSFixedArrayIterator
|
| // - JSProxy
|
| // - FixedArrayBase
|
| // - ByteArray
|
| @@ -421,6 +422,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
|
| V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
|
| V(JS_GENERATOR_OBJECT_TYPE) \
|
| V(JS_MODULE_NAMESPACE_TYPE) \
|
| + V(JS_FIXED_ARRAY_ITERATOR_TYPE) \
|
| V(JS_GLOBAL_OBJECT_TYPE) \
|
| V(JS_GLOBAL_PROXY_TYPE) \
|
| V(JS_API_OBJECT_TYPE) \
|
| @@ -727,6 +729,7 @@ enum InstanceType {
|
| JS_CONTEXT_EXTENSION_OBJECT_TYPE,
|
| JS_GENERATOR_OBJECT_TYPE,
|
| JS_MODULE_NAMESPACE_TYPE,
|
| + JS_FIXED_ARRAY_ITERATOR_TYPE,
|
| JS_ARRAY_TYPE,
|
| JS_ARRAY_BUFFER_TYPE,
|
| JS_TYPED_ARRAY_TYPE,
|
| @@ -982,6 +985,7 @@ template <class C> inline bool Is(Object* obj);
|
| V(JSContextExtensionObject) \
|
| V(JSGeneratorObject) \
|
| V(JSModuleNamespace) \
|
| + V(JSFixedArrayIterator) \
|
| V(Map) \
|
| V(DescriptorArray) \
|
| V(FrameArray) \
|
| @@ -10455,6 +10459,37 @@ class JSStringIterator : public JSObject {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(JSStringIterator);
|
| };
|
|
|
| +// A JS iterator over the elements of a FixedArray.
|
| +// This corresponds to ListIterator in ecma262/#sec-createlistiterator.
|
| +class JSFixedArrayIterator : public JSObject {
|
| + public:
|
| + DECLARE_CAST(JSFixedArrayIterator)
|
| + DECLARE_PRINTER(JSFixedArrayIterator)
|
| + DECLARE_VERIFIER(JSFixedArrayIterator)
|
| +
|
| + // The array over which the iterator iterates.
|
| + DECL_ACCESSORS(array, FixedArray)
|
| +
|
| + // The index of the array element that will be returned next.
|
| + DECL_INT_ACCESSORS(index)
|
| +
|
| + // The initial value of the object's "next" property.
|
| + DECL_ACCESSORS(initial_next, JSFunction)
|
| +
|
| + static const int kArrayOffset = JSObject::kHeaderSize;
|
| + static const int kIndexOffset = kArrayOffset + kPointerSize;
|
| + static const int kNextOffset = kIndexOffset + kPointerSize;
|
| + static const int kHeaderSize = kNextOffset + kPointerSize;
|
| +
|
| + enum InObjectPropertyIndex {
|
| + kNextIndex,
|
| + kInObjectPropertyCount // Dummy.
|
| + };
|
| +
|
| + private:
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(JSFixedArrayIterator);
|
| +};
|
| +
|
| // OrderedHashTableIterator is an iterator that iterates over the keys and
|
| // values of an OrderedHashTable.
|
| //
|
|
|