fix misaligned error reporting on tab char (#5032)

This commit is contained in:
Fenzland 2020-05-02 01:03:54 +08:00 committed by GitHub
parent fa396c0a22
commit 25b765c123
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 2 deletions

View file

@ -74,7 +74,11 @@ fn format_maybe_source_line(
'~'
};
for _i in 0..start_column {
s.push(' ');
if source_line.chars().nth(_i as usize).unwrap() == '\t' {
s.push('\t');
} else {
s.push(' ');
}
}
for _i in 0..(end_column - start_column) {
s.push(underline_char);

View file

@ -0,0 +1,9 @@
function foo() {
throw Error("bad");
}
function bar() {
foo();
}
bar();

View file

@ -0,0 +1,6 @@
[WILDCARD]error: Uncaught Error: bad
throw Error("bad");
^
at foo ([WILDCARD]tests/error_025_tab_indent:2:8)
at bar ([WILDCARD]tests/error_025_tab_indent:6:2)
at [WILDCARD]tests/error_025_tab_indent:9:1

View file

@ -1429,6 +1429,13 @@ itest!(error_024_stack_promise_all {
exit_code: 1,
});
itest!(error_025_tab_indent {
args: "error_025_tab_indent",
output: "error_025_tab_indent.out",
check_stderr: true,
exit_code: 1,
});
itest!(error_syntax {
args: "run --reload error_syntax.js",
check_stderr: true,