mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-18 09:50:27 +00: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.
36 lines
1,016 B
C++
36 lines
1,016 B
C++
/*
|
|
* Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/Bindings/PlatformObject.h>
|
|
#include <LibWeb/DOMURL/URLSearchParams.h>
|
|
|
|
namespace Web::DOMURL {
|
|
|
|
class URLSearchParamsIterator : public Bindings::PlatformObject {
|
|
WEB_NON_IDL_PLATFORM_OBJECT(URLSearchParamsIterator, Bindings::PlatformObject);
|
|
GC_DECLARE_ALLOCATOR(URLSearchParamsIterator);
|
|
|
|
public:
|
|
static WebIDL::ExceptionOr<GC::Ref<URLSearchParamsIterator>> create(URLSearchParams const&, JS::Object::PropertyKind iteration_kind);
|
|
|
|
virtual ~URLSearchParamsIterator() override;
|
|
|
|
JS::Object* next();
|
|
|
|
private:
|
|
URLSearchParamsIterator(URLSearchParams const&, JS::Object::PropertyKind iteration_kind);
|
|
|
|
virtual void initialize(JS::Realm&) override;
|
|
virtual void visit_edges(Cell::Visitor&) override;
|
|
|
|
GC::Ref<URLSearchParams const> m_url_search_params;
|
|
JS::Object::PropertyKind m_iteration_kind;
|
|
size_t m_index { 0 };
|
|
};
|
|
|
|
}
|