diff options
author | 2022-11-30 05:49:01 -0800 | |
---|---|---|
committer | 2022-11-30 05:49:01 -0800 | |
commit | 6213a91f058cc461fb916d479f03f602c552c377 (patch) | |
tree | 5442b8e30a1eebfda378586913dd56a27bd3ba88 /src/bun.js/bindings/ZigGlobalObject.cpp | |
parent | f999bdca26256b7ad42d93268c34362b251330c2 (diff) | |
download | bun-6213a91f058cc461fb916d479f03f602c552c377.tar.gz bun-6213a91f058cc461fb916d479f03f602c552c377.tar.zst bun-6213a91f058cc461fb916d479f03f602c552c377.zip |
[wip internal] Introduce `bun.String` which wraps `WTF::String` and allows us to reuse themjarred/make-strings-better
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGlobalObject.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index be88430bd..04e79d303 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -3455,8 +3455,15 @@ JSC::Identifier GlobalObject::moduleLoaderResolve(JSGlobalObject* globalObject, { ErrorableZigString res; res.success = false; - ZigString keyZ = toZigString(key, globalObject); - ZigString referrerZ = referrer && !referrer.isUndefinedOrNull() && referrer.isString() ? toZigString(referrer, globalObject) : ZigStringEmpty; + BunString keyZ = Bun::fromJS(globalObject, key); + BunString referrerZ; + + if (referrer && !referrer.isUndefinedOrNull() && referrer.isString()) { + referrerZ = Bun::fromJS(globalObject, referrer); + } else { + referrerZ = BunString { BunStringTag::Empty }; + } + Zig__GlobalObject__resolve(&res, globalObject, &keyZ, &referrerZ); if (res.success) { @@ -3482,8 +3489,12 @@ JSC::JSInternalPromise* GlobalObject::moduleLoaderImportModule(JSGlobalObject* g auto sourceURL = sourceOrigin.url(); ErrorableZigString resolved; - auto moduleNameZ = toZigString(moduleNameValue, globalObject); - auto sourceOriginZ = sourceURL.isEmpty() ? ZigStringCwd : toZigString(sourceURL.fileSystemPath()); + auto moduleNameZ = Bun::fromJS(globalObject, moduleNameValue); + WTF::String fsPath; + if (!sourceURL.isEmpty()) { + fsPath = sourceURL.fileSystemPath(); + } + auto sourceOriginZ = sourceURL.isEmpty() ? BunString { BunStringTag::StaticZigString, { .zig = ZigStringCwd } } : Bun::fromString(fsPath); resolved.success = false; Zig__GlobalObject__resolve(&resolved, globalObject, &moduleNameZ, &sourceOriginZ); if (!resolved.success) { @@ -3514,7 +3525,7 @@ static JSC_DEFINE_HOST_FUNCTION(functionFulfillModuleSync, return JSValue::encode(JSC::jsUndefined()); } - auto specifier = Zig::toZigString(moduleKey); + auto specifier = Bun::fromString(moduleKey); ErrorableResolvedSource res; res.success = false; res.result.err.code = 0; @@ -3559,8 +3570,8 @@ JSC::JSInternalPromise* GlobalObject::moduleLoaderFetch(JSGlobalObject* globalOb return rejectedInternalPromise(globalObject, createTypeError(globalObject, "To load Node-API modules, use require() or process.dlopen instead of import."_s)); } - auto moduleKeyZig = toZigString(moduleKey); - auto source = Zig::toZigString(value1, globalObject); + auto moduleKeyZig = Bun::fromString(moduleKey); + auto source = Bun::fromJS(globalObject, value1); ErrorableResolvedSource res; res.success = false; res.result.err.code = 0; @@ -3612,8 +3623,6 @@ JSC::JSValue GlobalObject::moduleLoaderEvaluate(JSGlobalObject* globalObject, return result; } - - #include "ZigGeneratedClasses+lazyStructureImpl.h" } // namespace Zig |