aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/BunBuiltinNames.h
blob: 7a666df61c6e6319d0b2ce33f8589581254b51e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// clang-format off

#pragma once

#include "helpers.h"
#include "root.h"
#include <JavaScriptCore/BuiltinUtils.h>


namespace Bun {

using namespace JSC;


#if !defined(BUN_ADDITIONAL_PRIVATE_IDENTIFIERS)
#define BUN_ADDITIONAL_PRIVATE_IDENTIFIERS(macro)
#endif




#define BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \
    macro(filePath) \
    macro(syscall) \
    macro(errno) \
    macro(code) \
    macro(path) \
    macro(dir) \
    macro(versions) \
    macro(argv) \
    macro(execArgv) \
    macro(nextTick) \
    macro(version) \
    macro(title) \
    macro(pid) \
    macro(ppid) \
    macro(chdir) \
    macro(cwd) \
    macro(process) \
    macro(map) \
    macro(addEventListener) \
    macro(removeEventListener) \
    macro(prependEventListener) \
    macro(write) \
    macro(end) \
    macro(close) \
    macro(destroy) \
    macro(cork) \
    macro(uncork) \
    macro(isPaused) \
    macro(read) \
    macro(pipe) \
    macro(unpipe) \
    macro(once) \
    macro(on) \
    macro(unshift) \
    macro(resume) \
    macro(pause) \
    BUN_ADDITIONAL_PRIVATE_IDENTIFIERS(macro) \

class BunBuiltinNames {
public:
    // FIXME: Remove the __attribute__((nodebug)) when <rdar://68246686> is fixed.
#if COMPILER(CLANG)
    __attribute__((nodebug))
#endif
    explicit BunBuiltinNames(JSC::VM& vm)
        : m_vm(vm)
        BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_BUILTIN_NAMES)
    {
#define EXPORT_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
        BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(EXPORT_NAME)
#undef EXPORT_NAME
    }


    BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)

private:
    JSC::VM& m_vm;
    BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(DECLARE_BUILTIN_NAMES)
};

} // namespace Bun