/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::DOM { class DocumentFragment : public ParentNode , public NonElementParentNode { WEB_PLATFORM_OBJECT(DocumentFragment, ParentNode); public: static JS::NonnullGCPtr create_with_global_object(HTML::Window& window); virtual ~DocumentFragment() override = default; virtual FlyString node_name() const override { return "#document-fragment"; } Element* host() { return m_host.ptr(); } Element const* host() const { return m_host.ptr(); } void set_host(Element*); protected: explicit DocumentFragment(Document& document); virtual void visit_edges(Cell::Visitor&) override; private: // https://dom.spec.whatwg.org/#concept-documentfragment-host JS::GCPtr m_host; }; template<> inline bool Node::fast_is() const { return is_document_fragment(); } } WRAPPER_HACK(DocumentFragment, Web::DOM)