From f891d1df5006760c19ab997ec9baa6a8071885b6 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sun, 27 Nov 2022 06:17:59 -0800 Subject: [PATCH] Fix strangeness with Bun.env keys --- src/bun.js/javascript_core_c_api.zig | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/bun.js/javascript_core_c_api.zig b/src/bun.js/javascript_core_c_api.zig index 48b0e31020..d3df574ab2 100644 --- a/src/bun.js/javascript_core_c_api.zig +++ b/src/bun.js/javascript_core_c_api.zig @@ -64,17 +64,16 @@ pub const OpaqueJSString = opaque { return JSStringCreateWithUTF8CString(""); } - if (zig_str.is16Bit()) { - return JSStringCreateWithCharacters(zig_str.utf16SliceAligned().ptr, zig_str.len); + if (zig_str.isUTF8()) { + return JSValueToStringCopy( + bun.JSC.VirtualMachine.vm.global, + zig_str.toValueGC(bun.JSC.VirtualMachine.vm.global).asObjectRef(), + null, + ); } - if (zig_str.isUTF8()) { - // this is super inefficient - if (bun.strings.toUTF16Alloc(allocator, zig_str.slice(), false) catch unreachable) |utf16| { - const cloned = JSStringCreateWithCharacters(utf16.ptr, utf16.len); - allocator.free(utf16); - return cloned; - } + if (zig_str.is16Bit()) { + return JSStringCreateWithCharacters(zig_str.utf16SliceAligned().ptr, zig_str.len); } // also extremely inefficient @@ -512,3 +511,5 @@ const JSStringIterator_ = extern struct { // not official api functions pub extern "c" fn JSCInitialize() void; + +pub extern "c" fn JSObjectGetProxyTarget(JSObjectRef) JSObjectRef;