diff options
Diffstat (limited to 'src/bun.js/modules/ProcessModule.h')
-rw-r--r-- | src/bun.js/modules/ProcessModule.h | 39 |
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); } } |