Coverage Report

Created: 2025-03-04 07:22

/src/serenity/Userland/Libraries/LibJS/Runtime/RegExpConstructor.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2020, Matthew Olsson <mattco@serenityos.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <LibJS/Runtime/NativeFunction.h>
10
#include <LibJS/Runtime/RegExpLegacyStaticProperties.h>
11
12
namespace JS {
13
14
class RegExpConstructor final : public NativeFunction {
15
    JS_OBJECT(RegExpConstructor, NativeFunction);
16
    JS_DECLARE_ALLOCATOR(RegExpConstructor);
17
18
public:
19
    virtual void initialize(Realm&) override;
20
0
    virtual ~RegExpConstructor() override = default;
21
22
    virtual ThrowCompletionOr<Value> call() override;
23
    virtual ThrowCompletionOr<NonnullGCPtr<Object>> construct(FunctionObject& new_target) override;
24
25
0
    RegExpLegacyStaticProperties& legacy_static_properties() { return m_legacy_static_properties; }
26
27
private:
28
    explicit RegExpConstructor(Realm&);
29
30
0
    virtual bool has_constructor() const override { return true; }
31
32
    JS_DECLARE_NATIVE_FUNCTION(symbol_species_getter);
33
    JS_DECLARE_NATIVE_FUNCTION(input_getter);
34
    JS_DECLARE_NATIVE_FUNCTION(input_alias_getter);
35
    JS_DECLARE_NATIVE_FUNCTION(input_setter);
36
    JS_DECLARE_NATIVE_FUNCTION(input_alias_setter);
37
    JS_DECLARE_NATIVE_FUNCTION(last_match_getter);
38
    JS_DECLARE_NATIVE_FUNCTION(last_match_alias_getter);
39
    JS_DECLARE_NATIVE_FUNCTION(last_paren_getter);
40
    JS_DECLARE_NATIVE_FUNCTION(last_paren_alias_getter);
41
    JS_DECLARE_NATIVE_FUNCTION(left_context_getter);
42
    JS_DECLARE_NATIVE_FUNCTION(left_context_alias_getter);
43
    JS_DECLARE_NATIVE_FUNCTION(right_context_getter);
44
    JS_DECLARE_NATIVE_FUNCTION(right_context_alias_getter);
45
    JS_DECLARE_NATIVE_FUNCTION(group_1_getter);
46
    JS_DECLARE_NATIVE_FUNCTION(group_2_getter);
47
    JS_DECLARE_NATIVE_FUNCTION(group_3_getter);
48
    JS_DECLARE_NATIVE_FUNCTION(group_4_getter);
49
    JS_DECLARE_NATIVE_FUNCTION(group_5_getter);
50
    JS_DECLARE_NATIVE_FUNCTION(group_6_getter);
51
    JS_DECLARE_NATIVE_FUNCTION(group_7_getter);
52
    JS_DECLARE_NATIVE_FUNCTION(group_8_getter);
53
    JS_DECLARE_NATIVE_FUNCTION(group_9_getter);
54
55
    RegExpLegacyStaticProperties m_legacy_static_properties;
56
};
57
58
}