Position.cpp 779 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <andreas@ladybird.org>
  3. * Copyright (c) 2021, Max Wipfli <mail@maxwipfli.ch>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #include <LibWeb/DOM/Node.h>
  8. #include <LibWeb/DOM/Position.h>
  9. #include <LibWeb/DOM/Text.h>
  10. namespace Web::DOM {
  11. JS_DEFINE_ALLOCATOR(Position);
  12. Position::Position(JS::GCPtr<Node> node, unsigned offset)
  13. : m_node(node)
  14. , m_offset(offset)
  15. {
  16. }
  17. void Position::visit_edges(Visitor& visitor)
  18. {
  19. Base::visit_edges(visitor);
  20. visitor.visit(m_node);
  21. }
  22. ErrorOr<String> Position::to_string() const
  23. {
  24. if (!node())
  25. return String::formatted("DOM::Position(nullptr, {})", offset());
  26. return String::formatted("DOM::Position({} ({})), {})", node()->node_name(), node().ptr(), offset());
  27. }
  28. }