Coverage Report

Created: 2025-03-04 07:22

/src/serenity/Userland/Libraries/LibJS/Runtime/ObjectConstructor.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
3
 * Copyright (c) 2020-2022, Linus Groh <linusg@serenityos.org>
4
 *
5
 * SPDX-License-Identifier: BSD-2-Clause
6
 */
7
8
#pragma once
9
10
#include <LibJS/Runtime/NativeFunction.h>
11
12
namespace JS {
13
14
class ObjectConstructor final : public NativeFunction {
15
    JS_OBJECT(ObjectConstructor, NativeFunction);
16
    JS_DECLARE_ALLOCATOR(ObjectConstructor);
17
18
public:
19
    virtual void initialize(Realm&) override;
20
    virtual ~ObjectConstructor() override = default;
21
22
    virtual ThrowCompletionOr<Value> call() override;
23
    virtual ThrowCompletionOr<NonnullGCPtr<Object>> construct(FunctionObject& new_target) override;
24
25
private:
26
    explicit ObjectConstructor(Realm&);
27
28
0
    virtual bool has_constructor() const override { return true; }
29
30
    JS_DECLARE_NATIVE_FUNCTION(define_property);
31
    JS_DECLARE_NATIVE_FUNCTION(define_properties);
32
    JS_DECLARE_NATIVE_FUNCTION(is);
33
    JS_DECLARE_NATIVE_FUNCTION(get_own_property_descriptor);
34
    JS_DECLARE_NATIVE_FUNCTION(get_own_property_descriptors);
35
    JS_DECLARE_NATIVE_FUNCTION(get_own_property_names);
36
    JS_DECLARE_NATIVE_FUNCTION(get_own_property_symbols);
37
    JS_DECLARE_NATIVE_FUNCTION(get_prototype_of);
38
    JS_DECLARE_NATIVE_FUNCTION(group_by);
39
    JS_DECLARE_NATIVE_FUNCTION(set_prototype_of);
40
    JS_DECLARE_NATIVE_FUNCTION(is_extensible);
41
    JS_DECLARE_NATIVE_FUNCTION(is_frozen);
42
    JS_DECLARE_NATIVE_FUNCTION(is_sealed);
43
    JS_DECLARE_NATIVE_FUNCTION(prevent_extensions);
44
    JS_DECLARE_NATIVE_FUNCTION(seal);
45
    JS_DECLARE_NATIVE_FUNCTION(freeze);
46
    JS_DECLARE_NATIVE_FUNCTION(from_entries);
47
    JS_DECLARE_NATIVE_FUNCTION(keys);
48
    JS_DECLARE_NATIVE_FUNCTION(values);
49
    JS_DECLARE_NATIVE_FUNCTION(entries);
50
    JS_DECLARE_NATIVE_FUNCTION(create);
51
    JS_DECLARE_NATIVE_FUNCTION(has_own);
52
    JS_DECLARE_NATIVE_FUNCTION(assign);
53
};
54
55
}