/* * Copyright (c) 2024, stelar7 * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include namespace Web::IndexedDB { GC_DEFINE_ALLOCATOR(IDBTransaction); IDBTransaction::~IDBTransaction() = default; IDBTransaction::IDBTransaction(JS::Realm& realm, GC::Ref database) : EventTarget(realm) , m_connection(database) { } GC::Ref IDBTransaction::create(JS::Realm& realm, GC::Ref database) { return realm.create(realm, database); } void IDBTransaction::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(IDBTransaction); } void IDBTransaction::visit_edges(Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_connection); visitor.visit(m_error); visitor.visit(m_associated_request); } void IDBTransaction::set_onabort(WebIDL::CallbackType* event_handler) { set_event_handler_attribute(HTML::EventNames::abort, event_handler); } WebIDL::CallbackType* IDBTransaction::onabort() { return event_handler_attribute(HTML::EventNames::abort); } void IDBTransaction::set_oncomplete(WebIDL::CallbackType* event_handler) { set_event_handler_attribute(HTML::EventNames::complete, event_handler); } WebIDL::CallbackType* IDBTransaction::oncomplete() { return event_handler_attribute(HTML::EventNames::complete); } void IDBTransaction::set_onerror(WebIDL::CallbackType* event_handler) { set_event_handler_attribute(HTML::EventNames::error, event_handler); } WebIDL::CallbackType* IDBTransaction::onerror() { return event_handler_attribute(HTML::EventNames::error); } }