ladybird/Libraries/LibWeb/WebIDL/CachedAttribute.h
Idan Horowitz 4c49ce5fe5 LibWeb: Add support for caching IDL attribute values
This lets us properly implement for [SameObject] for generated
constructs like FrozenArray<T>.
2025-08-26 06:28:10 -04:00

18 lines
918 B
C++

/*
* Copyright (c) 2025, Idan Horowitz <idan.horowitz@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#define DEFINE_CACHED_ATTRIBUTE(name) \
GC::Ptr<JS::Object> cached_##name() const { return m_cached_##name; } \
void set_cached_##name(GC::Ptr<JS::Object> cached_##name) { m_cached_##name = cached_##name; } \
\
private: \
GC::Ptr<JS::Object> m_cached_##name; \
\
public:
#define VISIT_CACHED_ATTRIBUTE(name) visitor.visit(m_cached_##name)