X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..HEAD:/runtime/JSArrayIterator.h diff --git a/runtime/JSArrayIterator.h b/runtime/JSArrayIterator.h index 2994a67..0166bd2 100644 --- a/runtime/JSArrayIterator.h +++ b/runtime/JSArrayIterator.h @@ -33,11 +33,7 @@ namespace JSC { enum ArrayIterationKind : uint32_t { ArrayIterateKey, ArrayIterateValue, - ArrayIterateKeyValue, - ArrayIterateSparseTag = 4, - ArrayIterateSparseKey, - ArrayIterateSparseValue, - ArrayIterateSparseKeyValue + ArrayIterateKeyValue }; class JSArrayIterator : public JSNonFinalObject { @@ -59,33 +55,18 @@ public: return instance; } - ArrayIterationKind iterationKind() const { return m_iterationKind; } - JSObject* iteratedObject() const { return m_iteratedObject.get(); } - size_t nextIndex() const { return m_nextIndex; } - void setNextIndex(size_t nextIndex) { m_nextIndex = nextIndex; } - void finish() { m_nextIndex = std::numeric_limits::max(); } - - using JSNonFinalObject::arrayStorageOrNull; - static ptrdiff_t offsetOfIterationKind() { return OBJECT_OFFSETOF(JSArrayIterator, m_iterationKind); } - static ptrdiff_t offsetOfIteratedObject() { return OBJECT_OFFSETOF(JSArrayIterator, m_iteratedObject); } - static ptrdiff_t offsetOfNextIndex() { return OBJECT_OFFSETOF(JSArrayIterator, m_nextIndex); } + ArrayIterationKind kind(ExecState*) const; + JSValue iteratedValue(ExecState*) const; + JSArrayIterator* clone(ExecState*); + using JSNonFinalObject::arrayStorageOrNull; private: - - static const unsigned StructureFlags = Base::StructureFlags | OverridesVisitChildren; - JSArrayIterator(VM& vm, Structure* structure) : Base(vm, structure) - , m_nextIndex(0) { } void finishCreation(VM&, JSGlobalObject*, ArrayIterationKind, JSObject* iteratedObject); - static void visitChildren(JSCell*, SlotVisitor&); - - ArrayIterationKind m_iterationKind; - WriteBarrier m_iteratedObject; - uint32_t m_nextIndex; }; }