aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/javascript_core_c_api.zig19
1 files 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 48b0e3102..d3df574ab 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;