aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r--src/bun.js/bindings/ZigGlobalObject.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp
index daf6d3f14..bfc8e2ad4 100644
--- a/src/bun.js/bindings/ZigGlobalObject.cpp
+++ b/src/bun.js/bindings/ZigGlobalObject.cpp
@@ -2466,23 +2466,31 @@ JSC::JSObject* GlobalObject::moduleLoaderCreateImportMetaProperties(JSGlobalObje
}
RETURN_IF_EXCEPTION(scope, nullptr);
+ auto& builtinNames = clientData->builtinNames();
+
auto view = keyString->value(globalObject);
auto index = view.reverseFind('/', view.length());
if (index != WTF::notFound) {
- metaProperties->putDirect(vm, clientData->builtinNames().dirPublicName(),
+ metaProperties->putDirect(vm, builtinNames.dirPublicName(),
JSC::jsSubstring(globalObject, keyString, 0, index));
metaProperties->putDirect(
- vm, clientData->builtinNames().filePublicName(),
+ vm, builtinNames.filePublicName(),
JSC::jsSubstring(globalObject, keyString, index + 1, keyString->length() - index - 1));
} else {
- metaProperties->putDirect(vm, clientData->builtinNames().filePublicName(), keyString);
+ metaProperties->putDirect(vm, builtinNames.filePublicName(), keyString);
}
- metaProperties->putDirect(vm, clientData->builtinNames().pathPublicName(), keyString);
+ metaProperties->putDirect(vm, builtinNames.pathPublicName(), keyString);
+ metaProperties->putDirect(
+ vm,
+ builtinNames.requirePublicName(),
+ Zig::ImportMetaObject::createRequireFunction(vm, globalObject, view),
+ PropertyAttribute::Builtin | PropertyAttribute::Function | 0);
+
if (view.startsWith('/')) {
- metaProperties->putDirect(vm, clientData->builtinNames().urlPublicName(), JSC::JSValue(JSC::jsString(vm, WTF::URL::fileURLWithFileSystemPath(view).string())));
+ metaProperties->putDirect(vm, builtinNames.urlPublicName(), JSC::JSValue(JSC::jsString(vm, WTF::URL::fileURLWithFileSystemPath(view).string())));
} else {
- metaProperties->putDirect(vm, clientData->builtinNames().urlPublicName(), keyString);
+ metaProperties->putDirect(vm, builtinNames.urlPublicName(), keyString);
}
RELEASE_AND_RETURN(scope, metaProperties);