NodeFilter.cpp 758 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2022, Andreas Kling <andreas@ladybird.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibJS/Runtime/VM.h>
  7. #include <LibWeb/Bindings/NodeFilterPrototype.h>
  8. #include <LibWeb/DOM/NodeFilter.h>
  9. #include <LibWeb/WebIDL/ExceptionOr.h>
  10. namespace Web::DOM {
  11. GC_DEFINE_ALLOCATOR(NodeFilter);
  12. GC::Ref<NodeFilter> NodeFilter::create(JS::Realm& realm, WebIDL::CallbackType& callback)
  13. {
  14. return realm.create<NodeFilter>(realm, callback);
  15. }
  16. NodeFilter::NodeFilter(JS::Realm& realm, WebIDL::CallbackType& callback)
  17. : PlatformObject(realm.intrinsics().object_prototype())
  18. , m_callback(callback)
  19. {
  20. }
  21. void NodeFilter::visit_edges(Cell::Visitor& visitor)
  22. {
  23. Base::visit_edges(visitor);
  24. visitor.visit(m_callback);
  25. }
  26. }