Script.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2021-2023, Andreas Kling <andreas@ladybird.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/HTML/Scripting/Environments.h>
  7. #include <LibWeb/HTML/Scripting/Script.h>
  8. namespace Web::HTML {
  9. GC_DEFINE_ALLOCATOR(Script);
  10. Script::Script(URL::URL base_url, ByteString filename, JS::Realm& realm)
  11. : m_base_url(move(base_url))
  12. , m_filename(move(filename))
  13. , m_realm(realm)
  14. {
  15. }
  16. Script::~Script() = default;
  17. // https://whatpr.org/html/9893/webappapis.html#settings-object
  18. EnvironmentSettingsObject& Script::settings_object()
  19. {
  20. // The settings object of a script is the settings object of the principal realm of the script's realm.
  21. return principal_realm_settings_object(principal_realm(realm()));
  22. }
  23. void Script::visit_host_defined_self(JS::Cell::Visitor& visitor)
  24. {
  25. visitor.visit(*this);
  26. }
  27. void Script::visit_edges(Visitor& visitor)
  28. {
  29. Base::visit_edges(visitor);
  30. visitor.visit(m_realm);
  31. visitor.visit(m_parse_error);
  32. visitor.visit(m_error_to_rethrow);
  33. }
  34. }