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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
// Modelled off of https://github.com/nodejs/node/blob/main/src/node_constants.cc
// Note that if you change any of this code, you probably also have to change NodeConstantsModule.h
#include "ProcessBindingNatives.h"
#include "JavaScriptCore/ObjectConstructor.h"
namespace Bun {
using namespace JSC;
static JSValue processBindingNativesGetter(VM& vm, JSObject* bindingObject)
{
// Instead of actually returning our source code, we just return a dummy string.
// Most people just use `process.binding('natives')` to get a list of builtin modules
// We also don't report internal modules.
// If any of this breaks your package, please open an issue.
return jsString(vm, String("/* [native code] */"_s));
}
static JSValue processBindingNativesReturnUndefined(VM& vm, JSObject* bindingObject)
{
// process.binding('natives').config === undefined
return jsUndefined();
}
/* Source for ProcessBindingNatives.lut.h
@begin processBindingNativesTable
_http_agent processBindingNativesGetter PropertyCallback
_http_client processBindingNativesGetter PropertyCallback
_http_common processBindingNativesGetter PropertyCallback
_http_incoming processBindingNativesGetter PropertyCallback
_http_outgoing processBindingNativesGetter PropertyCallback
_http_server processBindingNativesGetter PropertyCallback
_stream_duplex processBindingNativesGetter PropertyCallback
_stream_passthrough processBindingNativesGetter PropertyCallback
_stream_readable processBindingNativesGetter PropertyCallback
_stream_transform processBindingNativesGetter PropertyCallback
_stream_wrap processBindingNativesGetter PropertyCallback
_stream_writable processBindingNativesGetter PropertyCallback
_tls_common processBindingNativesGetter PropertyCallback
_tls_wrap processBindingNativesGetter PropertyCallback
assert processBindingNativesGetter PropertyCallback
assert/strict processBindingNativesGetter PropertyCallback
async_hooks processBindingNativesGetter PropertyCallback
buffer processBindingNativesGetter PropertyCallback
child_process processBindingNativesGetter PropertyCallback
cluster processBindingNativesGetter PropertyCallback
console processBindingNativesGetter PropertyCallback
constants processBindingNativesGetter PropertyCallback
crypto processBindingNativesGetter PropertyCallback
dgram processBindingNativesGetter PropertyCallback
diagnostics_channel processBindingNativesGetter PropertyCallback
dns processBindingNativesGetter PropertyCallback
dns/promises processBindingNativesGetter PropertyCallback
domain processBindingNativesGetter PropertyCallback
events processBindingNativesGetter PropertyCallback
fs processBindingNativesGetter PropertyCallback
fs/promises processBindingNativesGetter PropertyCallback
http processBindingNativesGetter PropertyCallback
http2 processBindingNativesGetter PropertyCallback
https processBindingNativesGetter PropertyCallback
inspector processBindingNativesGetter PropertyCallback
inspector/promises processBindingNativesGetter PropertyCallback
module processBindingNativesGetter PropertyCallback
net processBindingNativesGetter PropertyCallback
os processBindingNativesGetter PropertyCallback
path processBindingNativesGetter PropertyCallback
path/posix processBindingNativesGetter PropertyCallback
path/win32 processBindingNativesGetter PropertyCallback
perf_hooks processBindingNativesGetter PropertyCallback
process processBindingNativesGetter PropertyCallback
punycode processBindingNativesGetter PropertyCallback
querystring processBindingNativesGetter PropertyCallback
readline processBindingNativesGetter PropertyCallback
readline/promises processBindingNativesGetter PropertyCallback
repl processBindingNativesGetter PropertyCallback
stream processBindingNativesGetter PropertyCallback
stream/consumers processBindingNativesGetter PropertyCallback
stream/promises processBindingNativesGetter PropertyCallback
stream/web processBindingNativesGetter PropertyCallback
string_decoder processBindingNativesGetter PropertyCallback
sys processBindingNativesGetter PropertyCallback
test processBindingNativesGetter PropertyCallback
test/reporters processBindingNativesGetter PropertyCallback
timers processBindingNativesGetter PropertyCallback
timers/promises processBindingNativesGetter PropertyCallback
tls processBindingNativesGetter PropertyCallback
trace_events processBindingNativesGetter PropertyCallback
tty processBindingNativesGetter PropertyCallback
url processBindingNativesGetter PropertyCallback
util processBindingNativesGetter PropertyCallback
util/types processBindingNativesGetter PropertyCallback
v8 processBindingNativesGetter PropertyCallback
vm processBindingNativesGetter PropertyCallback
wasi processBindingNativesGetter PropertyCallback
worker_threads processBindingNativesGetter PropertyCallback
zlib processBindingNativesGetter PropertyCallback
configs processBindingNativesReturnUndefined PropertyCallback
@end
*/
#include "ProcessBindingNatives.lut.h"
const ClassInfo ProcessBindingNatives::s_info = { "ProcessBindingNatives"_s, Base::info(), &processBindingNativesTable, nullptr, CREATE_METHOD_TABLE(ProcessBindingNatives) };
ProcessBindingNatives* ProcessBindingNatives::create(VM& vm, Structure* structure)
{
ProcessBindingNatives* obj = new (NotNull, allocateCell<ProcessBindingNatives>(vm)) ProcessBindingNatives(vm, structure);
obj->finishCreation(vm);
return obj;
}
Structure* ProcessBindingNatives::createStructure(VM& vm, JSGlobalObject* globalObject)
{
return Structure::create(vm, globalObject, jsNull(), TypeInfo(ObjectType, StructureFlags), ProcessBindingNatives::info());
}
void ProcessBindingNatives::finishCreation(JSC::VM& vm)
{
Base::finishCreation(vm);
ASSERT(inherits(vm, info()));
}
template<typename Visitor>
void ProcessBindingNatives::visitChildrenImpl(JSCell* cell, Visitor& visitor)
{
ProcessBindingNatives* thisObject = jsCast<ProcessBindingNatives*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
}
DEFINE_VISIT_CHILDREN(ProcessBindingNatives);
} // namespace Bun
|