summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/fmt_errors.rs6
-rw-r--r--cli/tests/error_025_tab_indent9
-rw-r--r--cli/tests/error_025_tab_indent.out6
-rw-r--r--cli/tests/integration_tests.rs7
4 files changed, 27 insertions, 1 deletions
diff --git a/cli/fmt_errors.rs b/cli/fmt_errors.rs
index d2c69819f..e0fc61459 100644
--- a/cli/fmt_errors.rs
+++ b/cli/fmt_errors.rs
@@ -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);
diff --git a/cli/tests/error_025_tab_indent b/cli/tests/error_025_tab_indent
new file mode 100644
index 000000000..35a25bcea
--- /dev/null
+++ b/cli/tests/error_025_tab_indent
@@ -0,0 +1,9 @@
+function foo() {
+ throw Error("bad");
+}
+
+function bar() {
+ foo();
+}
+
+bar();
diff --git a/cli/tests/error_025_tab_indent.out b/cli/tests/error_025_tab_indent.out
new file mode 100644
index 000000000..7b339c48f
--- /dev/null
+++ b/cli/tests/error_025_tab_indent.out
@@ -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
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index fb2d7e73b..66df5a70f 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -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,