mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
205 lines
14 KiB
C++
205 lines
14 KiB
C++
// 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();
|
|
}
|
|
|
|
// TODO: generate this table
|
|
/* 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
|
|
internal/abort_listener processBindingNativesGetter PropertyCallback
|
|
internal/assert/assertion_error processBindingNativesGetter PropertyCallback
|
|
internal/assert/calltracker processBindingNativesGetter PropertyCallback
|
|
internal/assert/myers_diff processBindingNativesGetter PropertyCallback
|
|
internal/assert/utils processBindingNativesGetter PropertyCallback
|
|
internal/buffer processBindingNativesGetter PropertyCallback
|
|
internal/cluster/child processBindingNativesGetter PropertyCallback
|
|
internal/cluster/isPrimary processBindingNativesGetter PropertyCallback
|
|
internal/cluster/primary processBindingNativesGetter PropertyCallback
|
|
internal/cluster/RoundRobinHandle processBindingNativesGetter PropertyCallback
|
|
internal/cluster/Worker processBindingNativesGetter PropertyCallback
|
|
internal/crypto/x509 processBindingNativesGetter PropertyCallback
|
|
internal/debugger processBindingNativesGetter PropertyCallback
|
|
internal/errors processBindingNativesGetter PropertyCallback
|
|
internal/fifo processBindingNativesGetter PropertyCallback
|
|
internal/fixed_queue processBindingNativesGetter PropertyCallback
|
|
internal/freelist processBindingNativesGetter PropertyCallback
|
|
internal/fs/cp-sync processBindingNativesGetter PropertyCallback
|
|
internal/fs/cp processBindingNativesGetter PropertyCallback
|
|
internal/fs/glob processBindingNativesGetter PropertyCallback
|
|
internal/fs/streams processBindingNativesGetter PropertyCallback
|
|
internal/html processBindingNativesGetter PropertyCallback
|
|
internal/http processBindingNativesGetter PropertyCallback
|
|
internal/http/FakeSocket processBindingNativesGetter PropertyCallback
|
|
internal/linkedlist processBindingNativesGetter PropertyCallback
|
|
internal/perf_hooks/monitorEventLoopDelay processBindingNativesGetter PropertyCallback
|
|
internal/primordials.js processBindingNativesGetter PropertyCallback
|
|
internal/promisify processBindingNativesGetter PropertyCallback
|
|
internal/shared processBindingNativesGetter PropertyCallback
|
|
internal/sql/errors processBindingNativesGetter PropertyCallback
|
|
internal/sql/mysql processBindingNativesGetter PropertyCallback
|
|
internal/sql/postgres processBindingNativesGetter PropertyCallback
|
|
internal/sql/query processBindingNativesGetter PropertyCallback
|
|
internal/sql/shared processBindingNativesGetter PropertyCallback
|
|
internal/sql/sqlite processBindingNativesGetter PropertyCallback
|
|
internal/stream.promises processBindingNativesGetter PropertyCallback
|
|
internal/stream processBindingNativesGetter PropertyCallback
|
|
internal/streams/add-abort-signal processBindingNativesGetter PropertyCallback
|
|
internal/streams/compose processBindingNativesGetter PropertyCallback
|
|
internal/streams/destroy processBindingNativesGetter PropertyCallback
|
|
internal/streams/duplex processBindingNativesGetter PropertyCallback
|
|
internal/streams/duplexify processBindingNativesGetter PropertyCallback
|
|
internal/streams/duplexpair processBindingNativesGetter PropertyCallback
|
|
internal/streams/end-of-stream processBindingNativesGetter PropertyCallback
|
|
internal/streams/from processBindingNativesGetter PropertyCallback
|
|
internal/streams/lazy_transform processBindingNativesGetter PropertyCallback
|
|
internal/streams/legacy processBindingNativesGetter PropertyCallback
|
|
internal/streams/native-readable processBindingNativesGetter PropertyCallback
|
|
internal/streams/operators processBindingNativesGetter PropertyCallback
|
|
internal/streams/passthrough processBindingNativesGetter PropertyCallback
|
|
internal/streams/pipeline processBindingNativesGetter PropertyCallback
|
|
internal/streams/readable processBindingNativesGetter PropertyCallback
|
|
internal/streams/state processBindingNativesGetter PropertyCallback
|
|
internal/streams/transform processBindingNativesGetter PropertyCallback
|
|
internal/streams/utils processBindingNativesGetter PropertyCallback
|
|
internal/streams/writable processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/dot processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/junit processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/lcov processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/spec processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/tap processBindingNativesGetter PropertyCallback
|
|
internal/test/reporter/utils processBindingNativesGetter PropertyCallback
|
|
internal/timers processBindingNativesGetter PropertyCallback
|
|
internal/tls processBindingNativesGetter PropertyCallback
|
|
internal/tty processBindingNativesGetter PropertyCallback
|
|
internal/url processBindingNativesGetter PropertyCallback
|
|
internal/util/colors processBindingNativesGetter PropertyCallback
|
|
internal/util/deprecate processBindingNativesGetter PropertyCallback
|
|
internal/util/inspect processBindingNativesGetter PropertyCallback
|
|
internal/util/mime processBindingNativesGetter PropertyCallback
|
|
internal/validators processBindingNativesGetter PropertyCallback
|
|
internal/webstreams_adapters processBindingNativesGetter PropertyCallback
|
|
@end
|
|
*/
|
|
#include "ProcessBindingNatives.lut.h"
|
|
|
|
const ClassInfo ProcessBindingNatives::s_info = { "ProcessBindingNatives"_s, &Base::s_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(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
|