aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/modules/ProcessModule.h
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-11 19:14:34 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-11 19:14:34 -0700
commitcbb88672f217a90db1aa1eb29cd92d5d9035b22b (patch)
tree43a00501f3cde495967e116f0b660777051551f8 /src/bun.js/modules/ProcessModule.h
parent1f900cff453700b19bca2acadfe26da4468c1282 (diff)
parent34b0e7a2bbd8bf8097341cdb0075d0908283e834 (diff)
downloadbun-jarred/esm-conditions.tar.gz
bun-jarred/esm-conditions.tar.zst
bun-jarred/esm-conditions.zip
Merge branch 'main' into jarred/esm-conditionsjarred/esm-conditions
Diffstat (limited to '')
-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);
}
}