@@ -69,7 +69,7 @@ fn parse_with_return(filename: &str, source_text: String, options: &ParserOption
6969 let allocator = Allocator :: default ( ) ;
7070 let source_type = get_source_type ( filename, options) ;
7171 let mut ret = parse ( & allocator, source_type, & source_text, options) ;
72- let errors = ret. errors . into_iter ( ) . map ( OxcError :: from) . collect :: < Vec < _ > > ( ) ;
72+ let mut errors = ret. errors . into_iter ( ) . map ( OxcError :: from) . collect :: < Vec < _ > > ( ) ;
7373
7474 let mut comments = ret
7575 . program
@@ -87,8 +87,6 @@ fn parse_with_return(filename: &str, source_text: String, options: &ParserOption
8787 . collect :: < Vec < Comment > > ( ) ;
8888
8989 if options. convert_span_utf16 . unwrap_or ( false ) {
90- // TODO: fix spans in `errors`
91-
9290 // Empty `comments` so comment spans don't get converted twice
9391 ret. program . comments . clear ( ) ;
9492
@@ -100,6 +98,13 @@ fn parse_with_return(filename: &str, source_text: String, options: &ParserOption
10098 comment. start = converter. convert_offset ( comment. start ) ;
10199 comment. end = converter. convert_offset ( comment. end ) ;
102100 }
101+
102+ for error in & mut errors {
103+ for label in & mut error. labels {
104+ label. start = converter. convert_offset ( label. start ) ;
105+ label. end = converter. convert_offset ( label. end ) ;
106+ }
107+ }
103108 }
104109 let program = serde_json:: to_string ( & ret. program ) . unwrap ( ) ;
105110 let module = EcmaScriptModule :: from ( & ret. module_record ) ;
0 commit comments