diff options
author | 2021-06-27 23:36:35 -0700 | |
---|---|---|
committer | 2021-06-27 23:36:35 -0700 | |
commit | ae113559c6dd1e1e77b69ee5edee93fe59b4be2e (patch) | |
tree | 0686604fee7ab5afe2166f3d9445f874669e419f /src/js_lexer.zig | |
parent | 506d9b81a7c9dac5dd870f6735c39df105e72fd4 (diff) | |
download | bun-ae113559c6dd1e1e77b69ee5edee93fe59b4be2e.tar.gz bun-ae113559c6dd1e1e77b69ee5edee93fe59b4be2e.tar.zst bun-ae113559c6dd1e1e77b69ee5edee93fe59b4be2e.zip |
starting to work
Diffstat (limited to 'src/js_lexer.zig')
-rw-r--r-- | src/js_lexer.zig | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/js_lexer.zig b/src/js_lexer.zig index 0e469122e..8b00f9a17 100644 --- a/src/js_lexer.zig +++ b/src/js_lexer.zig @@ -2630,14 +2630,15 @@ pub const CodepointIterator = struct { const cp_len = strings.utf8ByteSequenceLength(it.bytes[it.i]); it.i += cp_len; + // without branching, + it.width = @intCast(u3, @boolToInt(it.i <= it.bytes.len)) * cp_len; return if (!(it.i > it.bytes.len)) it.bytes[it.i - cp_len .. it.i] else ""; } pub fn nextCodepoint(it: *CodepointIterator) ?CodePoint { const slice = it.nextCodepointSlice(); - - it.c = switch (slice.len) { + it.c = switch (it.width) { 0 => it.c, 1 => @as(CodePoint, slice[0]), 2 => @as(CodePoint, unicode.utf8Decode2(slice) catch unreachable), |