Rewrite built-in modules to use CommonJS over ESM (#3814)

* 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>
This commit is contained in:
dave caruso
2023-08-02 16:27:36 -07:00
committed by GitHub
parent 7656b4b17e
commit c2a77cf7ec
199 changed files with 11153 additions and 31396 deletions

View File

@@ -0,0 +1,75 @@
#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