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.
33 lines
733 B
C++
33 lines
733 B
C++
/*
|
|
* Copyright (c) 2021, Luke Wilde <lukew@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/DOM/NodeList.h>
|
|
|
|
namespace Web::DOM {
|
|
|
|
class StaticNodeList final : public NodeList {
|
|
WEB_NON_IDL_PLATFORM_OBJECT(StaticNodeList, NodeList);
|
|
GC_DECLARE_ALLOCATOR(StaticNodeList);
|
|
|
|
public:
|
|
[[nodiscard]] static GC::Ref<NodeList> create(JS::Realm&, Vector<GC::Root<Node>>);
|
|
|
|
virtual ~StaticNodeList() override;
|
|
|
|
virtual u32 length() const override;
|
|
virtual Node const* item(u32 index) const override;
|
|
|
|
private:
|
|
StaticNodeList(JS::Realm&, Vector<GC::Root<Node>>);
|
|
|
|
virtual void visit_edges(Cell::Visitor&) override;
|
|
|
|
Vector<GC::Ref<Node>> m_static_nodes;
|
|
};
|
|
|
|
}
|