Skip to content

Commit da1a0a2

Browse files
committed
use iter for js_analyzer instead of folder
1 parent 5797973 commit da1a0a2

File tree

4 files changed

+756
-760
lines changed

4 files changed

+756
-760
lines changed

jscomp/core/js_analyzer.ml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,32 +139,31 @@ and no_side_effect (x : J.expression) =
139139

140140
let no_side_effect_expression (x : J.expression) = no_side_effect x
141141

142-
let no_side_effect clean : Js_fold.fold =
142+
let no_side_effect clean : Js_iter.iter =
143143
object (self)
144-
inherit Js_fold.fold as super
144+
inherit Js_iter.iter as super
145145
method! statement s =
146-
if not !clean then self else
146+
if !clean then
147147
match s.statement_desc with
148148
| Throw _
149149
| Debugger
150150
| Break
151151
| Variable _
152152
| Continue _ ->
153-
clean := false ; self
153+
clean := false
154154
| Exp e -> self#expression e
155155
| Int_switch _ | String_switch _ | ForRange _
156156
| If _ | While _ | Block _ | Return _ | Try _ -> super#statement s
157157
method! list f x =
158-
if not !clean then self else super#list f x
158+
if !clean then super#list f x
159159
method! expression s =
160-
(if !clean then
161-
clean := no_side_effect_expression s);
162-
self
163-
(** only expression would cause side effec *)
160+
if !clean then
161+
clean := no_side_effect_expression s
162+
(** only expression would cause side effec *)
164163
end
165164
let no_side_effect_statement st =
166165
let clean = ref true in
167-
let _ : Js_fold.fold = ((no_side_effect clean)#statement st) in
166+
(no_side_effect clean)#statement st;
168167
!clean
169168

170169
(* TODO: generate [fold2]

0 commit comments

Comments
 (0)