Skip to content

Commit 44e4591

Browse files
committed
CR
1 parent 65aeb1c commit 44e4591

File tree

6 files changed

+31
-39
lines changed

6 files changed

+31
-39
lines changed

compiler/bin-js_of_ocaml/cmd_arg.ml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ let options =
280280
input_file
281281
js_files
282282
keep_unit_names =
283+
let inline_source_content = not sourcemap_don't_inline_content in
283284
let chop_extension s = try Filename.chop_extension s with Invalid_argument _ -> s in
284285
let runtime_files = js_files in
285286
let fs_external = fs_external || (toplevel && no_cmis) in
@@ -308,13 +309,9 @@ let options =
308309
in
309310
Some
310311
( sm_output_file
311-
, { Source_map.Standard.version = 3
312-
; file
312+
, { (Source_map.Standard.empty ~inline_source_content) with
313+
file
313314
; sourceroot = sourcemap_root
314-
; sources = []
315-
; sources_content = (if sourcemap_don't_inline_content then None else Some [])
316-
; names = []
317-
; mappings = Source_map.Mappings.empty
318315
} )
319316
else None
320317
in
@@ -519,6 +516,7 @@ let options_runtime_only =
519516
target_env
520517
output_file
521518
js_files =
519+
let inline_source_content = not sourcemap_don't_inline_content in
522520
let chop_extension s = try Filename.chop_extension s with Invalid_argument _ -> s in
523521
let runtime_files = js_files in
524522
let output_file =
@@ -537,13 +535,9 @@ let options_runtime_only =
537535
in
538536
Some
539537
( sm_output_file
540-
, { Source_map.Standard.version = 3
541-
; file
538+
, { (Source_map.Standard.empty ~inline_source_content) with
539+
file
542540
; sourceroot = sourcemap_root
543-
; sources = []
544-
; sources_content = (if sourcemap_don't_inline_content then None else Some [])
545-
; names = []
546-
; mappings = Source_map.Mappings.empty
547541
} )
548542
else None
549543
in

compiler/bin-js_of_ocaml/compile.ml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ let find_source file =
8585
else None
8686

8787
let sourcemap_section_of_info
88-
~base:(sm : Source_map.Standard.t)
88+
~(base : Source_map.Standard.t)
8989
{ Source_map.sources; names; mappings } =
9090
let sources_content =
91-
match sm.sources_content with
91+
match base.sources_content with
9292
| None -> None
9393
| Some _ -> Some (List.map ~f:find_source sources)
9494
in
@@ -100,19 +100,19 @@ let sourcemap_section_of_info
100100
in
101101
let offset, mappings = Source_map.Mappings.encode_with_offset mappings in
102102
let map =
103-
{ (sm : Source_map.Standard.t) with sources; sources_content; names; mappings }
103+
{ (base : Source_map.Standard.t) with sources; sources_content; names; mappings }
104104
in
105105
{ Source_map.Index.offset; map }
106106

107107
let sourcemap_of_infos ~base l =
108108
match base with
109109
| None -> None
110-
| Some (sm : Source_map.Standard.t) ->
111-
let sections = List.map l ~f:(sourcemap_section_of_info ~base:sm) in
110+
| Some (base : Source_map.Standard.t) ->
111+
let sections = List.map l ~f:(sourcemap_section_of_info ~base) in
112112
Some
113113
(Source_map.Index
114-
{ Source_map.Index.version = sm.Source_map.Standard.version
115-
; file = sm.file
114+
{ Source_map.Index.version = base.Source_map.Standard.version
115+
; file = base.file
116116
; sections
117117
})
118118

compiler/bin-js_of_ocaml/link.ml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,9 @@ let options =
102102
in
103103
Some
104104
( sm_output_file
105-
, { Source_map.Standard.version = 3
106-
; file
105+
, { (Source_map.Standard.empty ~inline_source_content:true) with
106+
file
107107
; sourceroot = sourcemap_root
108-
; sources = []
109-
; sources_content = Some []
110-
; names = []
111-
; mappings = Source_map.Mappings.empty
112108
} )
113109
else None
114110
in

compiler/lib/source_map.ml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -323,12 +323,12 @@ module Standard = struct
323323
; mappings : Mappings.t
324324
}
325325

326-
let empty =
326+
let empty ~inline_source_content =
327327
{ version = 3
328328
; file = None
329329
; sourceroot = None
330330
; sources = []
331-
; sources_content = None
331+
; sources_content = (if inline_source_content then Some [] else None)
332332
; names = []
333333
; mappings = Mappings.empty
334334
}
@@ -393,9 +393,16 @@ module Standard = struct
393393
sources = List.rev_append sm.sources acc_rev.sources
394394
; names = List.rev_append sm.names acc_rev.names
395395
; sources_content =
396-
(match sm.sources_content, acc_rev.sources_content with
397-
| Some x, Some acc_rev -> Some (List.rev_append x acc_rev)
398-
| None, _ | _, None -> None)
396+
(match acc_rev.sources_content with
397+
| Some acc_rev -> (
398+
match sm.sources_content with
399+
| Some x -> Some (List.rev_append x acc_rev)
400+
| None _ ->
401+
Some
402+
(List.rev_append
403+
(List.map sm.sources ~f:(fun _ -> None))
404+
acc_rev)
405+
| None -> None))
399406
; mappings = Mappings.empty
400407
}
401408
, List.rev_append_map
@@ -411,12 +418,7 @@ module Standard = struct
411418
rest
412419
in
413420
let acc_rev, mappings_rev =
414-
loop
415-
{ empty with sources_content = Some [] }
416-
[]
417-
~sources_offset:0
418-
~names_offset:0
419-
l
421+
loop (empty ~inline_source_content:true) [] ~sources_offset:0 ~names_offset:0 l
420422
in
421423
Some
422424
{ acc_rev with

compiler/lib/source_map.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ module Standard : sig
109109
(** Merge two lists of debug mappings. The time cost of the merge is more than
110110
linear in function of the size of the input mappings. *)
111111

112-
val empty : t
112+
val empty : inline_source_content:bool -> t
113113
end
114114

115115
module Index : sig

compiler/tests-compiler/sourcemap.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,15 @@ let%expect_test _ =
135135
{ gen_line; gen_col; ori_source = source; ori_line = line; ori_col = col }
136136
in
137137
let s1 : Source_map.Standard.t =
138-
{ Source_map.Standard.empty with
138+
{ (Source_map.Standard.empty ~inline_source_content:false) with
139139
names = [ "na"; "nb"; "nc" ]
140140
; sources = [ "sa"; "sb" ]
141141
; mappings =
142142
Source_map.Mappings.encode [ gen (1, 1) (10, 10) 0; gen (3, 3) (20, 20) 1 ]
143143
}
144144
in
145145
let s2 : Source_map.Standard.t =
146-
{ Source_map.Standard.empty with
146+
{ (Source_map.Standard.empty ~inline_source_content:false) with
147147
names = [ "na2"; "nb2" ]
148148
; sources = [ "sa2" ]
149149
; mappings = Source_map.Mappings.encode [ gen (3, 3) (5, 5) 0 ]

0 commit comments

Comments
 (0)