Coverage Report

Created: 2025-12-18 07:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibJS/Runtime/Accessor.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2020, Matthew Olsson <mattco@serenityos.org>
3
 * Copyright (c) 2020, Linus Groh <linusg@serenityos.org>
4
 *
5
 * SPDX-License-Identifier: BSD-2-Clause
6
 */
7
8
#pragma once
9
10
#include <AK/StringView.h>
11
#include <LibJS/Runtime/FunctionObject.h>
12
#include <LibJS/Runtime/VM.h>
13
14
namespace JS {
15
16
class Accessor final : public Cell {
17
    JS_CELL(Accessor, Cell);
18
    JS_DECLARE_ALLOCATOR(Accessor);
19
20
public:
21
    static NonnullGCPtr<Accessor> create(VM& vm, FunctionObject* getter, FunctionObject* setter)
22
0
    {
23
0
        return vm.heap().allocate_without_realm<Accessor>(getter, setter);
24
0
    }
25
26
0
    FunctionObject* getter() const { return m_getter; }
27
0
    void set_getter(FunctionObject* getter) { m_getter = getter; }
28
29
0
    FunctionObject* setter() const { return m_setter; }
30
0
    void set_setter(FunctionObject* setter) { m_setter = setter; }
31
32
    void visit_edges(Cell::Visitor& visitor) override
33
0
    {
34
0
        Base::visit_edges(visitor);
35
0
        visitor.visit(m_getter);
36
0
        visitor.visit(m_setter);
37
0
    }
38
39
private:
40
    Accessor(FunctionObject* getter, FunctionObject* setter)
41
0
        : m_getter(getter)
42
0
        , m_setter(setter)
43
0
    {
44
0
    }
45
46
    GCPtr<FunctionObject> m_getter;
47
    GCPtr<FunctionObject> m_setter;
48
};
49
50
}