mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 10:58:56 +00:00
* stfdsafsd sadffdsa stuff finish commonjs stuff asdf not done but work not done but work not done yet but this is how far i am remove files lol update built files uncomment everything in events lol export default stuff * afdsafsd * its not perfect but almost done * okay * cool * remove temp file * finish rebase * revert settings.json * a * ch-ch-ch-ch-changes * okay * remove this check in release for now * sxdcfghnjm, * lkjhgf * fmt * filename can be null * Update NodeModuleModule.h * weee * fmt --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
#include "../bindings/ZigGlobalObject.h"
|
|
#include "JavaScriptCore/CustomGetterSetter.h"
|
|
#include "JavaScriptCore/JSGlobalObject.h"
|
|
#include "_NativeModule.h"
|
|
|
|
namespace Zig {
|
|
|
|
JSC_DEFINE_HOST_FUNCTION(jsFunctionProcessModuleCommonJS,
|
|
(JSGlobalObject * globalObject,
|
|
CallFrame *callFrame)) {
|
|
VM &vm = globalObject->vm();
|
|
|
|
return JSValue::encode(
|
|
reinterpret_cast<Zig::GlobalObject *>(globalObject)->processObject());
|
|
}
|
|
|
|
JSC_DEFINE_CUSTOM_GETTER(jsFunctionProcessModuleCommonJSGetter,
|
|
(JSGlobalObject * globalObject,
|
|
EncodedJSValue thisValue,
|
|
PropertyName propertyName)) {
|
|
VM &vm = globalObject->vm();
|
|
|
|
return JSValue::encode(reinterpret_cast<Zig::GlobalObject *>(globalObject)
|
|
->processObject()
|
|
->get(globalObject, propertyName));
|
|
}
|
|
|
|
JSC_DEFINE_CUSTOM_SETTER(jsFunctionProcessModuleCommonJSSetter,
|
|
(JSGlobalObject * globalObject,
|
|
EncodedJSValue thisValue, EncodedJSValue encodedValue,
|
|
PropertyName propertyName)) {
|
|
VM &vm = globalObject->vm();
|
|
|
|
return reinterpret_cast<Zig::GlobalObject *>(globalObject)
|
|
->processObject()
|
|
->putDirect(vm, propertyName, JSValue::decode(encodedValue), 0);
|
|
}
|
|
|
|
DEFINE_NATIVE_MODULE(NodeProcess) {
|
|
JSC::VM &vm = lexicalGlobalObject->vm();
|
|
GlobalObject *globalObject =
|
|
reinterpret_cast<GlobalObject *>(lexicalGlobalObject);
|
|
|
|
JSC::JSObject *process = globalObject->processObject();
|
|
auto scope = DECLARE_THROW_SCOPE(vm);
|
|
if (!process->staticPropertiesReified()) {
|
|
process->reifyAllStaticProperties(globalObject);
|
|
if (scope.exception())
|
|
return;
|
|
}
|
|
|
|
PropertyNameArray properties(vm, PropertyNameMode::Strings,
|
|
PrivateSymbolMode::Exclude);
|
|
process->getPropertyNames(globalObject, properties,
|
|
DontEnumPropertiesMode::Exclude);
|
|
if (scope.exception())
|
|
return;
|
|
|
|
exportNames.append(vm.propertyNames->defaultKeyword);
|
|
exportValues.append(process);
|
|
|
|
for (auto &entry : properties) {
|
|
exportNames.append(entry);
|
|
auto catchScope = DECLARE_CATCH_SCOPE(vm);
|
|
JSValue result = process->get(globalObject, entry);
|
|
if (catchScope.exception()) {
|
|
result = jsUndefined();
|
|
catchScope.clearException();
|
|
}
|
|
|
|
exportValues.append(result);
|
|
}
|
|
}
|
|
|
|
} // namespace Zig
|