Skip to content

Commit 3698fe4

Browse files
committed
JavaScript if statement simplification: use appropriate locations
1 parent 102f8dd commit 3698fe4

File tree

2 files changed

+67
-67
lines changed

2 files changed

+67
-67
lines changed

compiler/lib/js_simpl.ml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,20 +252,19 @@ let if_statement e loc iftrue truestop iffalse falsestop =
252252
let e = simplify_condition e in
253253
match iftrue, iffalse with
254254
(* Shared statements *)
255-
| (J.If_statement (e', iftrue', iffalse'), loc), _ when Poly.(iffalse = unopt iffalse')
256-
-> if_statement_2 (J.EBin (J.And, e, e')) loc iftrue' truestop iffalse falsestop
257-
| (J.If_statement (e', iftrue', iffalse'), loc), _ when Poly.(iffalse = iftrue') ->
255+
| (J.If_statement (e', iftrue', iffalse'), _), _ when Poly.(iffalse = unopt iffalse') ->
256+
if_statement_2 (J.EBin (J.And, e, e')) loc iftrue' truestop iffalse falsestop
257+
| (J.If_statement (e', iftrue', iffalse'), _), _ when Poly.(iffalse = iftrue') ->
258258
if_statement_2
259259
(J.EBin (J.And, e, J.EUn (J.Not, e')))
260260
loc
261261
(unopt iffalse')
262262
truestop
263263
iffalse
264264
falsestop
265-
| _, (J.If_statement (e', iftrue', iffalse'), loc) when Poly.(iftrue = iftrue') ->
265+
| _, (J.If_statement (e', iftrue', iffalse'), _) when Poly.(iftrue = iftrue') ->
266266
if_statement_2 (J.EBin (J.Or, e, e')) loc iftrue truestop (unopt iffalse') falsestop
267-
| _, (J.If_statement (e', iftrue', iffalse'), loc) when Poly.(iftrue = unopt iffalse')
268-
->
267+
| _, (J.If_statement (e', iftrue', iffalse'), _) when Poly.(iftrue = unopt iffalse') ->
269268
if_statement_2
270269
(J.EBin (J.Or, e, J.EUn (J.Not, e')))
271270
loc

0 commit comments

Comments
 (0)