aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/modules/ProcessModule.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/modules/ProcessModule.h')
-rw-r--r--src/bun.js/modules/ProcessModule.h39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/bun.js/modules/ProcessModule.h b/src/bun.js/modules/ProcessModule.h
index 3c9c3261f..fab0298ae 100644
--- a/src/bun.js/modules/ProcessModule.h
+++ b/src/bun.js/modules/ProcessModule.h
@@ -44,32 +44,37 @@ inline void generateProcessSourceCode(JSC::JSGlobalObject *lexicalGlobalObject,
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);
- exportNames.append(JSC::Identifier::fromString(vm, "default"_s));
- JSFunction *processModuleCommonJS = JSFunction::create(
- vm, globalObject, 0, "process"_s, jsFunctionProcessModuleCommonJS,
- ImplementationVisibility::Public);
- processModuleCommonJS->putDirect(
- vm,
- PropertyName(
- Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))),
- jsBoolean(true), 0);
- exportValues.append(processModuleCommonJS);
+ exportNames.append(
+ Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s)));
+ exportValues.append(jsNumber(0));
for (auto &entry : properties) {
exportNames.append(entry);
- exportValues.append(process->get(globalObject, entry));
- processModuleCommonJS->putDirectCustomAccessor(
- vm, entry,
- JSC::CustomGetterSetter::create(vm,
- jsFunctionProcessModuleCommonJSGetter,
- jsFunctionProcessModuleCommonJSSetter),
- 0);
+ auto catchScope = DECLARE_CATCH_SCOPE(vm);
+ JSValue result = process->get(globalObject, entry);
+ if (catchScope.exception()) {
+ result = jsUndefined();
+ catchScope.clearException();
+ }
+
+ exportValues.append(result);
}
}