#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(globalObject)->processObject()); } JSC_DEFINE_CUSTOM_GETTER(jsFunctionProcessModuleCommonJSGetter, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) { VM &vm = globalObject->vm(); return JSValue::encode(reinterpret_cast(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(globalObject) ->processObject() ->putDirect(vm, propertyName, JSValue::decode(encodedValue), 0); } DEFINE_NATIVE_MODULE(NodeProcess) { JSC::VM &vm = lexicalGlobalObject->vm(); GlobalObject *globalObject = reinterpret_cast(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 alue='dave/lol'>dave/lol Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2023-10-09fix(AbortSignal/fetch) fix AbortSignal.timeout, fetch lock behavior and fetch...Gravatar Ciro Spaciari 29-61/+303
2023-10-09Fix npm tag for canary bun-types, againGravatar Ashcon Partovi 2-56/+10
2023-10-09Add Fedora build instructions to development.md (#6359)Gravatar otterDeveloper 1-0/+10
2023-10-09added commands (#6314)Gravatar babar 1-1/+2
2023-10-09Update README.md (#6291)Gravatar TPLJ 1-1/+1
2023-10-09docs: fixing a couple typos (#6331)Gravatar Michael Di Prisco 2-2/+2
2023-10-09fix: support uint8 exit code range (#6303)Gravatar Liz 2-2/+11
2023-10-09Fix array variables preview in debugger (#6379)Gravatar 2hu 1-1/+4
2023-10-07feat(KeyObject) (#5940)Gravatar Ciro Spaciari 106-67/+9342
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+1
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-2/+3
2023-10-06fix a couple install testsGravatar Dylan Conway 1-8/+8
2023-10-06formatGravatar Dylan Conway 1-1/+2
2023-10-06Fix memory leak in fetch() (#6350)Gravatar Jarred Sumner 1-2/+0
2023-10-06[types] allow onLoad plugin callbacks to return undefined (#6346)Gravatar Silver 1-1/+1
2023-10-06docs: `file.stream()` is not a promise (#6337)Gravatar Paul Nodet 1-1/+1