@@ -232,8 +232,6 @@ let rec block_last_is_return_throw_or_continue (x : J.block) =
232232*)
233233let if_ ?comment ?declaration ?else_ (e : J.expression ) (then_ : J.block ) : t =
234234 let declared = ref false in
235- let common_prefix_blocks = ref [] in
236- let add_prefix b = common_prefix_blocks := b :: ! common_prefix_blocks in
237235 let rec aux ?comment (e : J.expression ) (ifso : J.block ) (ifnot : J.block ) : t
238236 =
239237 match (e.expression_desc, ifnot) with
@@ -301,24 +299,6 @@ let if_ ?comment ?declaration ?else_ (e : J.expression) (then_ : J.block) : t =
301299 | _, [{statement_desc = If (pred1, ifso1, ifnot1)}]
302300 when Js_analyzer. eq_block ifso ifnot1 ->
303301 aux ?comment (E. or_ e (E. not pred1)) ifso ifso1
304- | ifso1 :: ifso_rest, ifnot1 :: ifnot_rest
305- when Js_analyzer. eq_statement ifnot1 ifso1
306- && (match ifso1.statement_desc with
307- | Exp
308- {
309- expression_desc =
310- Bin (Eq , {expression_desc = Var (Id v)}, _);
311- _;
312- } ->
313- let guard_vars = Js_analyzer. free_variables_of_expression e in
314- not (Set_ident. mem guard_vars v)
315- | _ -> true )
316- && Js_analyzer. no_side_effect_expression e ->
317- (* here we do agressive optimization, because it can help optimization later,
318- move code outside of branch is generally helpful later
319- *)
320- add_prefix ifso1;
321- aux ?comment e ifso_rest ifnot_rest
322302 | _ -> {statement_desc = If (e, ifso, ifnot); comment})
323303 in
324304 let if_block =
@@ -327,12 +307,9 @@ let if_ ?comment ?declaration ?else_ (e : J.expression) (then_ : J.block) : t =
327307 | None -> []
328308 | Some v -> v)
329309 in
330- let prefix = ! common_prefix_blocks in
331310 match (! declared, declaration) with
332- | true , _ | _ , None ->
333- if prefix = [] then if_block else block (List. rev_append prefix [if_block])
334- | false , Some (kind , id ) ->
335- block (declare_variable ~kind id :: List. rev_append prefix [if_block])
311+ | true , _ | _ , None -> if_block
312+ | false , Some (kind , id ) -> block (declare_variable ~kind id :: [if_block])
336313
337314let assign ?comment id e : t =
338315 {statement_desc = J. Exp (E. assign (E. var id) e); comment}
0 commit comments