diff options
author | 2023-10-13 13:31:12 -0700 | |
---|---|---|
committer | 2023-10-16 15:14:15 -0700 | |
commit | 2996ef71560ee4e9bd982fdadd7ff5ce32bb3e1c (patch) | |
tree | 4c05c119d22ea42b4b2f78cf89ace04c747372e9 | |
parent | 2b1f3438e6b928f57f2fd0e74ec6043097565135 (diff) | |
download | bun-2996ef71560ee4e9bd982fdadd7ff5ce32bb3e1c.tar.gz bun-2996ef71560ee4e9bd982fdadd7ff5ce32bb3e1c.tar.zst bun-2996ef71560ee4e9bd982fdadd7ff5ce32bb3e1c.zip |
Fix #6467
-rw-r--r-- | src/bun.js/webcore/encoding.zig | 6 | ||||
-rw-r--r-- | test/regression/issue/006467.test.ts | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index ca0f44e6a..18e70b261 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -765,7 +765,7 @@ pub const Encoder = struct { export fn Bun__encoding__writeLatin1(input: [*]const u8, len: usize, to: [*]u8, to_len: usize, encoding: u8) usize { return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .utf8 => writeU8(input, len, to, to_len, .utf8), - .latin1 => writeU8(input, len, to, to_len, .ascii), + .latin1 => writeU8(input, len, to, to_len, .latin1), .ascii => writeU8(input, len, to, to_len, .ascii), .ucs2 => writeU8(input, len, to, to_len, .utf16le), .utf16le => writeU8(input, len, to, to_len, .utf16le), @@ -967,13 +967,13 @@ pub const Encoder = struct { // if (comptime encoding.isBinaryToText()) {} switch (comptime encoding) { - .buffer => { + .buffer, .latin1 => { const written = @min(len, to_len); @memcpy(to_ptr[0..written], input[0..written]); return written; }, - .latin1, .ascii => { + .ascii => { const written = @min(len, to_len); var to = to_ptr[0..written]; diff --git a/test/regression/issue/006467.test.ts b/test/regression/issue/006467.test.ts new file mode 100644 index 000000000..9a9ad8a2d --- /dev/null +++ b/test/regression/issue/006467.test.ts @@ -0,0 +1,7 @@ +import { test, expect } from "bun:test"; + +test("write(value >= 0x80)", () => { + const buffer = Buffer.alloc(1); + buffer.write("\x80", "binary"); + expect(buffer[0]).toBe(0x80); +}); |