aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ModuleLoader.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-23 05:57:40 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-23 05:57:40 -0700
commit68c8377d76c6e1271e25f862614ce9270a64857d (patch)
tree593abaf3066e31eba38d96daf6a7e220398b718a /src/bun.js/bindings/ModuleLoader.cpp
parentec0e931e9f7934f4f1f7617eac2a880d13794d0c (diff)
downloadbun-68c8377d76c6e1271e25f862614ce9270a64857d.tar.gz
bun-68c8377d76c6e1271e25f862614ce9270a64857d.tar.zst
bun-68c8377d76c6e1271e25f862614ce9270a64857d.zip
WIP concurrent CommonJSjarred/cjs2
Diffstat (limited to 'src/bun.js/bindings/ModuleLoader.cpp')
-rw-r--r--src/bun.js/bindings/ModuleLoader.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp
index acda70e0a..8afd81128 100644
--- a/src/bun.js/bindings/ModuleLoader.cpp
+++ b/src/bun.js/bindings/ModuleLoader.cpp
@@ -63,6 +63,13 @@ static JSC::JSInternalPromise* resolvedInternalPromise(JSC::JSGlobalObject* glob
return promise;
}
+extern "C" bool ModuleLoader__moduleIDExistsInRequireMapOrESMRegistry(Zig::GlobalObject* globalObject, BunString* specifier)
+{
+ JSC::JSValue specifierValue = Bun::toJS(globalObject, *specifier);
+
+ return globalObject->requireMap()->has(globalObject, specifierValue) || globalObject->esModuleRegistry()->has(globalObject, specifierValue);
+}
+
// Converts an object from InternalModuleRegistry into { ...obj, default: obj }
static JSC::SyntheticSourceProvider::SyntheticSourceGenerator
generateInternalModuleSourceCode(JSC::JSGlobalObject* globalObject, InternalModuleRegistry::Field moduleId)
@@ -484,8 +491,7 @@ JSValue fetchCommonJSModule(
}
}
- auto* loader = globalObject->moduleLoader();
- JSMap* registry = jsCast<JSMap*>(loader->getDirect(vm, Identifier::fromString(vm, "registry"_s)));
+ JSMap* registry = globalObject->esModuleRegistry();
auto hasAlreadyLoadedESMVersionSoWeShouldntTranspileItTwice = [&]() -> bool {
JSValue entry = registry->get(globalObject, specifierValue);