diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bun.js/node/types.zig | 6 |
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), |
