mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-01 03:57:15 +02:00
By making use of the WEB_PLATFORM_OBJECT macro we can remove the boilerplate of needing to add this override for every serializable platform object so that we can check whether they are exposed or not.
37 lines
921 B
C++
37 lines
921 B
C++
/*
|
|
* Copyright (c) 2023, Kenneth Myhra <kennethmyhra@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/Bindings/PlatformObject.h>
|
|
#include <LibWeb/XHR/FormData.h>
|
|
|
|
namespace Web::XHR {
|
|
|
|
class FormDataIterator : public Bindings::PlatformObject {
|
|
WEB_NON_IDL_PLATFORM_OBJECT(FormDataIterator, Bindings::PlatformObject);
|
|
GC_DECLARE_ALLOCATOR(FormDataIterator);
|
|
|
|
public:
|
|
[[nodiscard]] static GC::Ref<FormDataIterator> 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<FormData const> m_form_data;
|
|
JS::Object::PropertyKind m_iterator_kind;
|
|
size_t m_index { 0 };
|
|
};
|
|
|
|
}
|