/* * 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); public: static WebIDL::ExceptionOr> create(FormData const&, JS::Object::PropertyKind iterator_kind); virtual ~FormDataIterator() override; JS::Object* next(); private: FormDataIterator(FormData const&, JS::Object::PropertyKind iterator_kind); virtual JS::ThrowCompletionOr initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; JS::NonnullGCPtr m_form_data; JS::Object::PropertyKind m_iterator_kind; size_t m_index { 0 }; }; }