diff --git a/src/bun.js/bindings/BunProcess.cpp b/src/bun.js/bindings/BunProcess.cpp index b70b4c00bc..4c58d1acca 100644 --- a/src/bun.js/bindings/BunProcess.cpp +++ b/src/bun.js/bindings/BunProcess.cpp @@ -703,7 +703,7 @@ extern "C" void Process__dispatchOnBeforeExit(Zig::GlobalObject* globalObject, u return; } auto& vm = JSC::getVM(globalObject); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); MarkedArgumentBuffer arguments; arguments.append(jsNumber(exitCode)); Bun__VirtualMachine__exitDuringUncaughtException(bunVM(vm)); @@ -722,7 +722,7 @@ extern "C" void Process__dispatchOnExit(Zig::GlobalObject* globalObject, uint8_t return; } - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); if (exitCode > 0) process->m_isExitCodeObservable = true; dispatchExitInternal(globalObject, process, exitCode); @@ -740,7 +740,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionExit, (JSC::JSGlobalObject * globalObje auto& vm = JSC::getVM(globalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); auto* zigGlobal = defaultGlobalObject(globalObject); - auto process = jsCast(zigGlobal->processObject()); + auto process = zigGlobal->processObject(); auto code = callFrame->argument(0); @@ -767,7 +767,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_setUncaughtExceptionCaptureCallback, (JSC::JSGl auto& vm = JSC::getVM(globalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); auto arg0 = callFrame->argument(0); - auto process = jsCast(globalObject->processObject()); + auto process = globalObject->processObject(); if (arg0.isNull()) { process->setUncaughtExceptionCaptureCallback(arg0); @@ -789,7 +789,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_setUncaughtExceptionCaptureCallback, (JSC::JSGl JSC_DEFINE_HOST_FUNCTION(Process_hasUncaughtExceptionCaptureCallback, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { auto* zigGlobal = defaultGlobalObject(globalObject); - JSValue cb = jsCast(zigGlobal->processObject())->getUncaughtExceptionCaptureCallback(); + JSValue cb = zigGlobal->processObject()->getUncaughtExceptionCaptureCallback(); if (cb.isEmpty() || !cb.isCell()) { return JSValue::encode(jsBoolean(false)); } @@ -870,7 +870,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionChdir, (JSC::JSGlobalObject * globalObj JSC::JSValue result = JSC::JSValue::decode(Bun__Process__setCwd(globalObject, &str)); RETURN_IF_EXCEPTION(scope, {}); - auto* processObject = jsCast(defaultGlobalObject(globalObject)->processObject()); + auto* processObject = defaultGlobalObject(globalObject)->processObject(); processObject->setCachedCwd(vm, result.toStringOrNull(globalObject)); RELEASE_AND_RETURN(scope, JSC::JSValue::encode(result)); } @@ -1029,7 +1029,7 @@ bool isSignalName(WTF::String input) extern "C" void Bun__onSignalForJS(int signalNumber, Zig::GlobalObject* globalObject) { - Process* process = jsCast(globalObject->processObject()); + Process* process = globalObject->processObject(); String signalName = signalNumberToNameMap->get(signalNumber); Identifier signalNameIdentifier = Identifier::fromString(JSC::getVM(globalObject), signalName); @@ -1074,7 +1074,7 @@ extern "C" int Bun__handleUncaughtException(JSC::JSGlobalObject* lexicalGlobalOb if (!lexicalGlobalObject->inherits(Zig::GlobalObject::info())) return false; auto* globalObject = jsCast(lexicalGlobalObject); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); auto& wrapped = process->wrapped(); auto& vm = JSC::getVM(globalObject); @@ -1118,7 +1118,7 @@ extern "C" int Bun__handleUnhandledRejection(JSC::JSGlobalObject* lexicalGlobalO if (!lexicalGlobalObject->inherits(Zig::GlobalObject::info())) return false; auto* globalObject = jsCast(lexicalGlobalObject); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); MarkedArgumentBuffer args; args.append(reason); args.append(promise); @@ -1329,7 +1329,7 @@ JSC_DEFINE_HOST_FUNCTION(jsFunction_emitWarning, (JSC::JSGlobalObject * lexicalG auto* globalObject = defaultGlobalObject(lexicalGlobalObject); auto& vm = JSC::getVM(globalObject); auto scope = DECLARE_THROW_SCOPE(vm); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); auto value = callFrame->argument(0); auto ident = builtinNames(vm).warningPublicName(); @@ -1395,7 +1395,7 @@ JSValue Process::emitWarningErrorInstance(JSC::JSGlobalObject* lexicalGlobalObje Zig::GlobalObject* globalObject = defaultGlobalObject(lexicalGlobalObject); VM& vm = getVM(globalObject); auto scope = DECLARE_THROW_SCOPE(vm); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); auto warningName = errorInstance.get(lexicalGlobalObject, vm.propertyNames->name); RETURN_IF_EXCEPTION(scope, {}); @@ -2202,7 +2202,7 @@ static JSValue constructExecPath(VM& vm, JSObject* processObject) extern "C" EncodedJSValue Bun__Process__getArgv(JSGlobalObject* lexicalGlobalObject) { auto* globalObject = defaultGlobalObject(lexicalGlobalObject); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); if (!process) { return JSValue::encode(jsUndefined()); } @@ -2253,7 +2253,7 @@ JSC_DEFINE_CUSTOM_SETTER(setProcessArgv, (JSGlobalObject * globalObject, Encoded extern "C" EncodedJSValue Bun__Process__getExecArgv(JSGlobalObject* lexicalGlobalObject) { auto* globalObject = defaultGlobalObject(lexicalGlobalObject); - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); if (!process) { return JSValue::encode(jsUndefined()); } @@ -2595,7 +2595,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionBinding, (JSGlobalObject * jsGlobalObje auto& vm = JSC::getVM(jsGlobalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); auto globalObject = jsCast(jsGlobalObject); - auto process = jsCast(globalObject->processObject()); + auto process = globalObject->processObject(); auto moduleName = callFrame->argument(0).toWTFString(globalObject); RETURN_IF_EXCEPTION(throwScope, {}); @@ -2743,7 +2743,7 @@ static Process* getProcessObject(JSC::JSGlobalObject* lexicalGlobalObject, JSVal // Handle calling this function from inside a node:vm Zig::GlobalObject* zigGlobalObject = defaultGlobalObject(lexicalGlobalObject); - return jsCast(zigGlobalObject->processObject()); + return zigGlobalObject->processObject(); } return process; @@ -3232,12 +3232,12 @@ void Process::emitOnNextTick(Zig::GlobalObject* globalObject, ASCIILiteral event extern "C" void Bun__Process__queueNextTick1(GlobalObject* globalObject, EncodedJSValue func, EncodedJSValue arg1) { - auto process = jsCast(globalObject->processObject()); + auto process = globalObject->processObject(); process->queueNextTick(globalObject, JSValue::decode(func), JSValue::decode(arg1)); } extern "C" void Bun__Process__queueNextTick2(GlobalObject* globalObject, EncodedJSValue func, EncodedJSValue arg1, EncodedJSValue arg2) { - auto process = jsCast(globalObject->processObject()); + auto process = globalObject->processObject(); process->queueNextTick<2>(globalObject, JSValue::decode(func), { JSValue::decode(arg1), JSValue::decode(arg2) }); } @@ -3393,7 +3393,7 @@ static inline JSValue getCachedCwd(JSC::JSGlobalObject* globalObject) auto scope = DECLARE_THROW_SCOPE(vm); // https://github.com/nodejs/node/blob/2eff28fb7a93d3f672f80b582f664a7c701569fb/lib/internal/bootstrap/switches/does_own_process_state.js#L142-L146 - auto* processObject = jsCast(defaultGlobalObject(globalObject)->processObject()); + auto* processObject = defaultGlobalObject(globalObject)->processObject(); if (auto* cached = processObject->cachedCwd()) { return cached; } @@ -3540,7 +3540,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionEmitHelper, (JSGlobalObject * globalObj extern "C" void Process__emitMessageEvent(Zig::GlobalObject* global, EncodedJSValue value, EncodedJSValue handle) { - auto* process = static_cast(global->processObject()); + auto* process = global->processObject(); auto& vm = JSC::getVM(global); auto ident = vm.propertyNames->message; @@ -3554,7 +3554,7 @@ extern "C" void Process__emitMessageEvent(Zig::GlobalObject* global, EncodedJSVa extern "C" void Process__emitDisconnectEvent(Zig::GlobalObject* global) { - auto* process = static_cast(global->processObject()); + auto* process = global->processObject(); auto& vm = JSC::getVM(global); auto ident = Identifier::fromString(vm, "disconnect"_s); if (process->wrapped().hasEventListeners(ident)) { @@ -3565,7 +3565,7 @@ extern "C" void Process__emitDisconnectEvent(Zig::GlobalObject* global) extern "C" void Process__emitErrorEvent(Zig::GlobalObject* global, EncodedJSValue value) { - auto* process = static_cast(global->processObject()); + auto* process = global->processObject(); auto& vm = JSC::getVM(global); if (process->wrapped().hasEventListeners(vm.propertyNames->error)) { JSC::MarkedArgumentBuffer args; diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp index a8aae7b75b..adb8f33bb2 100644 --- a/src/bun.js/bindings/ModuleLoader.cpp +++ b/src/bun.js/bindings/ModuleLoader.cpp @@ -39,6 +39,8 @@ #include "JSCommonJSExtensions.h" +#include "BunProcess.h" + namespace Bun { using namespace JSC; using namespace Zig; diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index fe13ebfb0e..4e49fa14ad 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -3134,7 +3134,7 @@ void GlobalObject::finishCreation(VM& vm) }); m_processObject.initLater( - [](const JSC::LazyProperty::Initializer& init) { + [](const JSC::LazyProperty::Initializer& init) { auto* globalObject = defaultGlobalObject(init.owner); auto* process = Bun::Process::create( diff --git a/src/bun.js/bindings/ZigGlobalObject.h b/src/bun.js/bindings/ZigGlobalObject.h index 827c99f0c9..bef364cc6f 100644 --- a/src/bun.js/bindings/ZigGlobalObject.h +++ b/src/bun.js/bindings/ZigGlobalObject.h @@ -31,6 +31,7 @@ namespace Bun { class InternalModuleRegistry; class NapiHandleScopeImpl; class JSNextTickQueue; +class Process; } // namespace Bun namespace v8 { @@ -302,7 +303,7 @@ public: RefPtr performance(); - JSC::JSObject* processObject() const { return m_processObject.getInitializedOnMainThread(this); } + Bun::Process* processObject() const { return m_processObject.getInitializedOnMainThread(this); } JSC::JSObject* processEnvObject() const { return m_processEnvObject.getInitializedOnMainThread(this); } JSC::JSObject* bunObject() const { return m_bunObject.getInitializedOnMainThread(this); } @@ -589,7 +590,7 @@ public: V(public, LazyPropertyOfGlobalObject, m_cryptoObject) \ V(public, LazyPropertyOfGlobalObject, m_navigatorObject) \ V(public, LazyPropertyOfGlobalObject, m_performanceObject) \ - V(public, LazyPropertyOfGlobalObject, m_processObject) \ + V(public, LazyPropertyOfGlobalObject, m_processObject) \ V(public, LazyPropertyOfGlobalObject, m_lazyStackCustomGetterSetter) \ V(public, LazyPropertyOfGlobalObject, m_ServerRouteListStructure) \ V(public, LazyPropertyOfGlobalObject, m_JSBunRequestStructure) \ diff --git a/src/bun.js/bindings/webcore/JSEventListener.cpp b/src/bun.js/bindings/webcore/JSEventListener.cpp index 3d6b166956..fe36e1dfef 100644 --- a/src/bun.js/bindings/webcore/JSEventListener.cpp +++ b/src/bun.js/bindings/webcore/JSEventListener.cpp @@ -133,7 +133,7 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionEmitUncaughtException, (JSC::JSGlobalObject * JSC_DEFINE_HOST_FUNCTION(jsFunctionEmitUncaughtExceptionNextTick, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callFrame)) { Zig::GlobalObject* globalObject = defaultGlobalObject(lexicalGlobalObject); - Bun::Process* process = jsCast(globalObject->processObject()); + Bun::Process* process = globalObject->processObject(); auto exception = callFrame->argument(0); auto func = JSFunction::create(globalObject->vm(), globalObject, 1, String(), jsFunctionEmitUncaughtException, JSC::ImplementationVisibility::Private); process->queueNextTick(lexicalGlobalObject, func, exception); diff --git a/src/bun.js/bindings/webcore/JSWorker.cpp b/src/bun.js/bindings/webcore/JSWorker.cpp index 3a82d266e4..44c9967286 100644 --- a/src/bun.js/bindings/webcore/JSWorker.cpp +++ b/src/bun.js/bindings/webcore/JSWorker.cpp @@ -344,7 +344,7 @@ template<> JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES JSWorkerDOMConstructor:: if (nodeWorkerObject) { workerToEmit = nodeWorkerObject; } - auto* process = jsCast(globalObject->processObject()); + auto* process = globalObject->processObject(); process->emitOnNextTick(globalObject, "worker"_s, workerToEmit); RETURN_IF_EXCEPTION(throwScope, {}); diff --git a/src/bun.js/modules/NodeProcessModule.h b/src/bun.js/modules/NodeProcessModule.h index 4420d710bc..605095387b 100644 --- a/src/bun.js/modules/NodeProcessModule.h +++ b/src/bun.js/modules/NodeProcessModule.h @@ -12,7 +12,7 @@ DEFINE_NATIVE_MODULE(NodeProcess) auto scope = DECLARE_THROW_SCOPE(vm); auto* globalObject = defaultGlobalObject(lexicalGlobalObject); - Bun::Process* process = jsCast(globalObject->processObject()); + Bun::Process* process = globalObject->processObject(); if (!process->staticPropertiesReified()) { process->reifyAllStaticProperties(globalObject); if (scope.exception())