@@ -232,8 +232,6 @@ let rec block_last_is_return_throw_or_continue (x : J.block) =
232
232
*)
233
233
let if_ ?comment ?declaration ?else_ (e : J.expression ) (then_ : J.block ) : t =
234
234
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
237
235
let rec aux ?comment (e : J.expression ) (ifso : J.block ) (ifnot : J.block ) : t
238
236
=
239
237
match (e.expression_desc, ifnot) with
@@ -301,24 +299,6 @@ let if_ ?comment ?declaration ?else_ (e : J.expression) (then_ : J.block) : t =
301
299
| _, [{statement_desc = If (pred1, ifso1, ifnot1)}]
302
300
when Js_analyzer. eq_block ifso ifnot1 ->
303
301
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
322
302
| _ -> {statement_desc = If (e, ifso, ifnot); comment})
323
303
in
324
304
let if_block =
@@ -327,12 +307,9 @@ let if_ ?comment ?declaration ?else_ (e : J.expression) (then_ : J.block) : t =
327
307
| None -> []
328
308
| Some v -> v)
329
309
in
330
- let prefix = ! common_prefix_blocks in
331
310
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])
336
313
337
314
let assign ?comment id e : t =
338
315
{statement_desc = J. Exp (E. assign (E. var id) e); comment}
0 commit comments