]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/JSArrayIterator.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / runtime / JSArrayIterator.h
index 2994a67d1a94eb14b5a60993cc2cea0a19f94495..0166bd2e5352ba2159364271ecabbaf80e15363d 100644 (file)
@@ -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<uint32_t>::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<JSObject> m_iteratedObject;
-    uint32_t m_nextIndex;
 };
 
 }