Skip to content

Commit dc991bd

Browse files
committed
fix offset
1 parent ecc5724 commit dc991bd

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

compiler/lib/link_js.ml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,12 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
324324
let sm_for_file = ref None in
325325
let ic = Line_reader.open_ file in
326326
let skip ic = Line_reader.drop ic in
327+
let line_offset = Line_writer.lnum oc in
327328
let reloc = ref [] in
328329
let copy ic oc =
329330
let line = Line_reader.next ic in
330331
Line_writer.write ~source:ic oc line;
331-
reloc := (Line_reader.lnum ic, Line_writer.lnum oc) :: !reloc
332+
reloc := (Line_reader.lnum ic, Line_writer.lnum oc - line_offset) :: !reloc
332333
in
333334
let rec read () =
334335
match Line_reader.peek ic with
@@ -432,7 +433,7 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
432433
Line_writer.write_lines oc content);
433434
(match !sm_for_file with
434435
| None -> ()
435-
| Some x -> sm := (x, !reloc) :: !sm);
436+
| Some x -> sm := (x, !reloc, line_offset) :: !sm);
436437
match !build_info, build_info_for_file with
437438
| None, None -> ()
438439
| Some _, None -> ()
@@ -446,10 +447,10 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
446447
| None -> ()
447448
| Some (file, init_sm) ->
448449
let sections =
449-
List.rev_map !sm ~f:(fun (sm, reloc) ->
450+
List.rev_map !sm ~f:(fun (sm, reloc, offset) ->
450451
let tbl = Hashtbl.create 17 in
451452
List.iter reloc ~f:(fun (a, b) -> Hashtbl.add tbl a b);
452-
( { Source_map.Index.gen_line = 0; gen_column = 0 }
453+
( { Source_map.Index.gen_line = offset; gen_column = 0 }
453454
, `Map (Source_map.Standard.filter_map sm ~f:(Hashtbl.find_opt tbl)) ))
454455
in
455456
let sm =

0 commit comments

Comments
 (0)