/* * Copyright (c) 2023, stelar7 * * SPDX-License-Identifier: BSD-2-Clause */ #include namespace Web::Crypto { JS_DEFINE_ALLOCATOR(CryptoKey); JS::NonnullGCPtr CryptoKey::create(JS::Realm& realm) { return realm.heap().allocate(realm, realm); } CryptoKey::CryptoKey(JS::Realm& realm) : PlatformObject(realm) , m_algorithm(Object::create(realm, nullptr)) , m_usages(Object::create(realm, nullptr)) { } CryptoKey::~CryptoKey() = default; void CryptoKey::initialize(JS::Realm& realm) { Base::initialize(realm); set_prototype(&Bindings::ensure_web_prototype(realm, "CryptoKey"_fly_string)); } void CryptoKey::visit_edges(Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_algorithm); visitor.visit(m_usages); } }