/* * Copyright (c) 2023, Kenneth Myhra * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::XHR { class FormDataIterator : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(FormDataIterator, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(FormDataIterator); public: [[nodiscard]] static GC::Ref create(FormData const&, JS::Object::PropertyKind iterator_kind); virtual ~FormDataIterator() override; JS::Object* next(); private: FormDataIterator(FormData const&, JS::Object::PropertyKind iterator_kind); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; GC::Ref m_form_data; JS::Object::PropertyKind m_iterator_kind; size_t m_index { 0 }; }; }