aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/node/types.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig
index 79e2c0618..e7f76c018 100644
--- a/src/bun.js/node/types.zig
+++ b/src/bun.js/node/types.zig
@@ -221,6 +221,10 @@ pub const StringOrBuffer = union(Tag) {
}
pub fn fromJS(global: *JSC.JSGlobalObject, allocator: std.mem.Allocator, value: JSC.JSValue, exception: JSC.C.ExceptionRef) ?StringOrBuffer {
+ if (!value.isCell()) {
+ var zig_str = value.toSlice(global, allocator);
+ return StringOrBuffer{ .string = zig_str.slice() };
+ }
return switch (value.jsType()) {
JSC.JSValue.JSType.String, JSC.JSValue.JSType.StringObject, JSC.JSValue.JSType.DerivedStringObject, JSC.JSValue.JSType.Object => {
var zig_str = value.toSlice(global, allocator);
@@ -418,7 +422,7 @@ pub const SliceOrBuffer = union(Tag) {
}
const out = brk: {
- if (zig_str.is16Bit()) {
+ if (!zig_str.is16Bit()) {
const buf = zig_str.slice();
break :brk switch (encoding) {
Encoding.utf8 => JSC.WebCore.Encoder.constructFromU8(buf.ptr, buf.len, .utf8),