@@ -30,7 +30,7 @@ let update_sourcemap ~sourcemap_root ~sourcemap_don't_inline_content sourcemap_f
3030 if Option. is_some sourcemap_root || not sourcemap_don't_inline_content
3131 then (
3232 let open Source_map in
33- let source_map, mappings = Source_map. of_file_no_mappings sourcemap_file in
33+ let source_map = Source_map. of_file sourcemap_file in
3434 assert (List. is_empty (Option. value source_map.sources_content ~default: [] ));
3535 (* Add source file contents to source map *)
3636 let sources_content =
@@ -50,7 +50,7 @@ let update_sourcemap ~sourcemap_root ~sourcemap_don't_inline_content sourcemap_f
5050 (if Option. is_some sourcemap_root then sourcemap_root else source_map.sourceroot)
5151 }
5252 in
53- Source_map. to_file ?mappings source_map ~file: sourcemap_file)
53+ Source_map. to_file source_map sourcemap_file)
5454
5555let opt_with action x f =
5656 match x with
@@ -140,17 +140,23 @@ let link_runtime ~profile runtime_wasm_files output_file =
140140let generate_prelude ~out_file =
141141 Filename. gen_file out_file
142142 @@ fun ch ->
143- let code, uinfo = Parse_bytecode. predefined_exceptions ~target: `Wasm in
144- let live_vars, in_cps, p, debug =
145- Driver. f
146- ~target: Wasm
147- ~link: `Needed
148- (Parse_bytecode.Debug. create ~include_cmis: false false )
149- code
143+ let code, uinfo = Parse_bytecode. predefined_exceptions () in
144+ let profile =
145+ match Driver. profile 1 with
146+ | Some p -> p
147+ | None -> assert false
150148 in
149+ let Driver. { program; variable_uses; in_cps; _ } = Driver. optimize ~profile code in
151150 let context = Wa_generate. start () in
151+ let debug = Parse_bytecode.Debug. create ~include_cmis: false false in
152152 let _ =
153- Wa_generate. f ~context ~unit_name: (Some " prelude" ) ~live_vars ~in_cps ~debug p
153+ Wa_generate. f
154+ ~context
155+ ~unit_name: (Some " prelude" )
156+ ~live_vars: variable_uses
157+ ~in_cps
158+ ~debug
159+ program
154160 in
155161 Wa_generate. output ch ~context ~debug ;
156162 uinfo.provides
@@ -244,6 +250,7 @@ let run
244250 ; sourcemap_root
245251 ; sourcemap_don't_inline_content
246252 } =
253+ Config. set_target `Wasm ;
247254 Jsoo_cmdline.Arg. eval common;
248255 Wa_generate. init () ;
249256 let output_file = fst output_file in
@@ -270,15 +277,8 @@ let run
270277 List. iter builtin ~f: (fun t ->
271278 let filename = Builtins.File. name t in
272279 let runtimes = Linker.Fragment. parse_builtin t in
273- Linker. load_fragments
274- ~ignore_always_annotation: true
275- ~target_env: Target_env. Isomorphic
276- ~filename
277- runtimes);
278- Linker. load_files
279- ~ignore_always_annotation: true
280- ~target_env: Target_env. Isomorphic
281- runtime_js_files;
280+ Linker. load_fragments ~target_env: Target_env. Isomorphic ~filename runtimes);
281+ Linker. load_files ~target_env: Target_env. Isomorphic runtime_js_files;
282282 Linker. check_deps () ;
283283 if times () then Format. eprintf " parsing js: %a@." Timer. print t1;
284284 if times () then Format. eprintf " Start parsing...@." ;
@@ -299,12 +299,17 @@ let run
299299 check_debug one;
300300 let code = one.code in
301301 let standalone = Option. is_none unit_name in
302- let live_vars, in_cps, p, debug =
303- Driver. f ~target: Wasm ~standalone ?profile ~link: `No one.debug code
302+ let profile =
303+ match profile, Driver. profile 1 with
304+ | Some p , _ -> p
305+ | None , Some p -> p
306+ | None , None -> assert false
304307 in
308+ let Driver. { program; variable_uses; in_cps; _ } = Driver. optimize ~profile code in
305309 let context = Wa_generate. start () in
310+ let debug = one.debug in
306311 let toplevel_name, generated_js =
307- Wa_generate. f ~context ~unit_name ~live_vars ~in_cps ~debug p
312+ Wa_generate. f ~context ~unit_name ~live_vars: variable_uses ~in_cps ~debug program
308313 in
309314 if standalone then Wa_generate. add_start_function ~context toplevel_name;
310315 Wa_generate. output ch ~context ~debug ;
@@ -352,12 +357,7 @@ let run
352357 let compile_cmo cmo cont =
353358 let t1 = Timer. make () in
354359 let code =
355- Parse_bytecode. from_cmo
356- ~target: `Wasm
357- ~includes: include_dirs
358- ~debug: need_debug
359- cmo
360- ic
360+ Parse_bytecode. from_cmo ~includes: include_dirs ~debug: need_debug cmo ic
361361 in
362362 let unit_info = Unit_info. of_cmo cmo in
363363 let unit_name = Ocaml_compiler.Cmo_format. name cmo in
@@ -391,7 +391,6 @@ let run
391391 let t1 = Timer. make () in
392392 let code =
393393 Parse_bytecode. from_exe
394- ~target: `Wasm
395394 ~includes: include_dirs
396395 ~include_cmis: false
397396 ~link_info: false
0 commit comments