diff options
author | 2022-11-27 22:09:56 -0800 | |
---|---|---|
committer | 2022-11-27 22:09:56 -0800 | |
commit | 4ee11d922cb9fb4b97ae07028c409ffba153a1d4 (patch) | |
tree | 014ece7037771eefacbf4cf3bf7df76dce0988db /src/bun.js/bindings/bun-simdutf.zig | |
parent | 885049831f9c09f9e41e80d66062d0b5d2525257 (diff) | |
download | bun-4ee11d922cb9fb4b97ae07028c409ffba153a1d4.tar.gz bun-4ee11d922cb9fb4b97ae07028c409ffba153a1d4.tar.zst bun-4ee11d922cb9fb4b97ae07028c409ffba153a1d4.zip |
Cleanup some of the encoding code
Diffstat (limited to 'src/bun.js/bindings/bun-simdutf.zig')
-rw-r--r-- | src/bun.js/bindings/bun-simdutf.zig | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/src/bun.js/bindings/bun-simdutf.zig b/src/bun.js/bindings/bun-simdutf.zig index f84ce56ce..531e9c3ef 100644 --- a/src/bun.js/bindings/bun-simdutf.zig +++ b/src/bun.js/bindings/bun-simdutf.zig @@ -292,48 +292,52 @@ pub const length = struct { pub const trim = struct { pub fn utf8_len(buf: []const u8) usize { - if (buf.len < 3) { - switch (buf.len) { + const len = buf.len; + + if (len < 3) { + switch (len) { 2 => { - if (buf[buf.len - 1] >= 0b11000000) { - return buf.len - 1; + if (buf[len - 1] >= 0b11000000) { + return len - 1; } // 2-, 3- and 4-byte characters with only 1 byte left - if (buf[buf.len - 2] >= 0b11100000) { - return buf.len - 2; + if (buf[len - 2] >= 0b11100000) { + return len - 2; } // 3- and 4-byte characters with only 2 bytes left - return buf.len; + return len; }, 1 => { - if (buf[buf.len - 1] >= 0b11000000) { - return buf.len - 1; + if (buf[len - 1] >= 0b11000000) { + return len - 1; } // 2-, 3- and 4-byte characters with only 1 byte left - return buf.len; + return len; }, - 0 => return buf.len, + 0 => return len, else => unreachable, } } - if (buf[buf.len - 1] >= 0b11000000) { - return buf.len - 1; + if (buf[len - 1] >= 0b11000000) { + return len - 1; } // 2-, 3- and 4-byte characters with only 1 byte left - if (buf[buf.len - 2] >= 0b11100000) { - return buf.len - 2; + if (buf[len - 2] >= 0b11100000) { + return len - 2; } // 3- and 4-byte characters with only 1 byte left - if (buf[buf.len - 3] >= 0b11110000) { - return buf.len - 3; + if (buf[len - 3] >= 0b11110000) { + return len - 3; } // 4-byte characters with only 3 bytes left - return buf.len; + return len; } pub fn utf16_len(buf: []const u16) usize { - if (buf.len == 0) { + const len = buf.len; + + if (len == 0) { return 0; } - if ((buf[buf.len - 1] >= 0xD800) and (buf[buf.len - 1] <= 0xDBFF)) { - return buf.len - 1; + if ((buf[len - 1] >= 0xD800) and (buf[len - 1] <= 0xDBFF)) { + return len - 1; } - return buf.len; + return len; } pub fn utf16(buf: []const u16) []const u16 { |