aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-07 00:31:10 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-07 00:31:10 -0800
commit2cc265361d363c1ea7685aecae3cd27aa03e187e (patch)
treeaa08a04b32055562e000559d676fa308cc62d61b
parent5ee063f6b22e00f1d0cd98e611063c2b9407a31a (diff)
downloadbun-2cc265361d363c1ea7685aecae3cd27aa03e187e.tar.gz
bun-2cc265361d363c1ea7685aecae3cd27aa03e187e.tar.zst
bun-2cc265361d363c1ea7685aecae3cd27aa03e187e.zip
[JS Parser] Fix bug with decoding escape sequences
-rw-r--r--src/js_lexer.zig8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/js_lexer.zig b/src/js_lexer.zig
index d6c1977f0..3865708dd 100644
--- a/src/js_lexer.zig
+++ b/src/js_lexer.zig
@@ -461,7 +461,7 @@ fn NewLexer_(
try lexer.syntaxError();
}
- const hex_start = iter.i - width - width2 - width3;
+ const hex_start = (iter.i + start) - width - width2 - width3;
var is_first = true;
var is_out_of_range = false;
variableLength: while (true) {
@@ -480,13 +480,13 @@ fn NewLexer_(
},
'}' => {
if (is_first) {
- lexer.end = start + iter.i - width3;
+ lexer.end = (start + iter.i) -| width3;
return lexer.syntaxError();
}
break :variableLength;
},
else => {
- lexer.end = start + iter.i - width3;
+ lexer.end = (start + iter.i) -| width3;
return lexer.syntaxError();
},
}
@@ -501,7 +501,7 @@ fn NewLexer_(
if (is_out_of_range) {
try lexer.addRangeError(
- .{ .loc = .{ .start = @intCast(i32, start + hex_start) }, .len = @intCast(i32, (iter.i - hex_start)) },
+ .{ .loc = .{ .start = @intCast(i32, start + hex_start) }, .len = @intCast(i32, ((iter.i + start) - hex_start)) },
"Unicode escape sequence is out of range",
.{},
true,