CryptoKey.cpp 870 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2023, stelar7 <dudedbz@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/Crypto/CryptoKey.h>
  7. namespace Web::Crypto {
  8. JS_DEFINE_ALLOCATOR(CryptoKey);
  9. JS::NonnullGCPtr<CryptoKey> CryptoKey::create(JS::Realm& realm)
  10. {
  11. return realm.heap().allocate<CryptoKey>(realm, realm);
  12. }
  13. CryptoKey::CryptoKey(JS::Realm& realm)
  14. : PlatformObject(realm)
  15. , m_algorithm(Object::create(realm, nullptr))
  16. , m_usages(Object::create(realm, nullptr))
  17. {
  18. }
  19. CryptoKey::~CryptoKey() = default;
  20. void CryptoKey::initialize(JS::Realm& realm)
  21. {
  22. Base::initialize(realm);
  23. set_prototype(&Bindings::ensure_web_prototype<Bindings::CryptoKeyPrototype>(realm, "CryptoKey"_fly_string));
  24. }
  25. void CryptoKey::visit_edges(Visitor& visitor)
  26. {
  27. Base::visit_edges(visitor);
  28. visitor.visit(m_algorithm);
  29. visitor.visit(m_usages);
  30. }
  31. }