Skip to content

Commit 6298c1f

Browse files
authored
Merge pull request #3881 from BuckleScript/gpr_3877
fix #3877
2 parents 64cbee1 + 1ce1e0d commit 6298c1f

File tree

6 files changed

+39
-9
lines changed

6 files changed

+39
-9
lines changed

jscomp/core/js_exp_make.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -990,11 +990,11 @@ let rec is_out ?comment (e : t) (range : t) : t =
990990
not (or_ (triple_equal e zero_int_literal) (triple_equal e one_int_literal))
991991
| Number (Int {i = 1l}),
992992
(
993-
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, {expression_desc = Var _; _})
994-
| Bin (Plus, {expression_desc = Var _; _}, {expression_desc = Number (Int {i ; _}) }))
993+
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, ({expression_desc = Var _; _} as x ))
994+
| Bin (Plus, ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) }))
995995

996996
->
997-
not (or_ (triple_equal e (int (Int32.neg i ))) (triple_equal e (int (Int32.sub Int32.one i))))
997+
not (or_ (triple_equal x (int (Int32.neg i ))) (triple_equal x (int (Int32.sub Int32.one i))))
998998
| Number (Int {i = 1l}),
999999
Bin (Minus , ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) })
10001000
->

jscomp/test/build.ninja

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ build test/gpr_3865.cmi test/gpr_3865.cmj : cc test/gpr_3865.re | test/gpr_3865_
305305
build test/gpr_3865_bar.cmi test/gpr_3865_bar.cmj : cc test/gpr_3865_bar.re | $stdlib
306306
build test/gpr_3865_foo.cmi test/gpr_3865_foo.cmj : cc test/gpr_3865_foo.re | $stdlib
307307
build test/gpr_3875_test.cmi test/gpr_3875_test.cmj : cc test/gpr_3875_test.ml | test/mt.cmj $stdlib
308+
build test/gpr_3877_test.cmi test/gpr_3877_test.cmj : cc test/gpr_3877_test.ml | $stdlib
308309
build test/gpr_405_test.cmj : cc_cmi test/gpr_405_test.ml | test/gpr_405_test.cmi $stdlib
309310
build test/gpr_405_test.cmi : cc test/gpr_405_test.mli | $stdlib
310311
build test/gpr_441.cmi test/gpr_441.cmj : cc test/gpr_441.ml | $stdlib

jscomp/test/gpr_3877_test.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
4+
var switcher = -299;
5+
6+
if (switcher > 99 || switcher < 0) {
7+
if (switcher === -300 || switcher === -299) {
8+
console.log("good response");
9+
} else {
10+
console.log("the catch all");
11+
}
12+
} else if (switcher > 97 || switcher < 12) {
13+
console.log("bad response");
14+
} else {
15+
console.log("the catch all");
16+
}
17+
18+
var httpResponseCode = 201;
19+
20+
exports.httpResponseCode = httpResponseCode;
21+
/* Not a pure module */

jscomp/test/gpr_3877_test.ml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
let httpResponseCode = 201
2+
let _ =
3+
match httpResponseCode with
4+
| 201|200 ->
5+
Js.log (("good response"))
6+
| 500|503|506|509|598|501|504|507|510|599|502|505|508|511 ->
7+
Js.log (("bad response"))
8+
| _ -> Js.log (("the catch all"))

lib/4.02.3/unstable/js_compiler.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83178,11 +83178,11 @@ let rec is_out ?comment (e : t) (range : t) : t =
8317883178
not (or_ (triple_equal e zero_int_literal) (triple_equal e one_int_literal))
8317983179
| Number (Int {i = 1l}),
8318083180
(
83181-
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, {expression_desc = Var _; _})
83182-
| Bin (Plus, {expression_desc = Var _; _}, {expression_desc = Number (Int {i ; _}) }))
83181+
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, ({expression_desc = Var _; _} as x ))
83182+
| Bin (Plus, ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) }))
8318383183

8318483184
->
83185-
not (or_ (triple_equal e (int (Int32.neg i ))) (triple_equal e (int (Int32.sub Int32.one i))))
83185+
not (or_ (triple_equal x (int (Int32.neg i ))) (triple_equal x (int (Int32.sub Int32.one i))))
8318683186
| Number (Int {i = 1l}),
8318783187
Bin (Minus , ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) })
8318883188
->

lib/4.02.3/whole_compiler.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73370,11 +73370,11 @@ let rec is_out ?comment (e : t) (range : t) : t =
7337073370
not (or_ (triple_equal e zero_int_literal) (triple_equal e one_int_literal))
7337173371
| Number (Int {i = 1l}),
7337273372
(
73373-
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, {expression_desc = Var _; _})
73374-
| Bin (Plus, {expression_desc = Var _; _}, {expression_desc = Number (Int {i ; _}) }))
73373+
Bin (Plus , {expression_desc = Number (Int {i ; _}) }, ({expression_desc = Var _; _} as x ))
73374+
| Bin (Plus, ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) }))
7337573375

7337673376
->
73377-
not (or_ (triple_equal e (int (Int32.neg i ))) (triple_equal e (int (Int32.sub Int32.one i))))
73377+
not (or_ (triple_equal x (int (Int32.neg i ))) (triple_equal x (int (Int32.sub Int32.one i))))
7337873378
| Number (Int {i = 1l}),
7337973379
Bin (Minus , ({expression_desc = Var _; _} as x), {expression_desc = Number (Int {i ; _}) })
7338073380
->

0 commit comments

Comments
 (0)