浏览代码

LibJS: ArrayIterator needs to mark the array it's iterating

Andreas Kling 4 年之前
父节点
当前提交
d467a0ffef
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 6 0
      Libraries/LibJS/Runtime/ArrayIterator.cpp
  2. 1 0
      Libraries/LibJS/Runtime/ArrayIterator.h

+ 6 - 0
Libraries/LibJS/Runtime/ArrayIterator.cpp

@@ -45,4 +45,10 @@ ArrayIterator::~ArrayIterator()
 {
 }
 
+void ArrayIterator::visit_children(Cell::Visitor & visitor)
+{
+    Base::visit_children(visitor);
+    visitor.visit(m_array);
+}
+
 }

+ 1 - 0
Libraries/LibJS/Runtime/ArrayIterator.h

@@ -47,6 +47,7 @@ private:
     friend class ArrayIteratorPrototype;
 
     virtual bool is_array_iterator_object() const override { return true; }
+    virtual void visit_children(Cell::Visitor&) override;
 
     Value m_array;
     Object::PropertyKind m_iteration_kind;