Skip to content

Commit c7bea24

Browse files
committed
avoid allocating obj multiple times
1 parent 1fb566d commit c7bea24

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

jscomp/core/js_analyzer.ml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,20 @@ let free_variables (stats : idents_stats) = {
7676
end
7777
}
7878

79+
let init = {used_idents = Set_ident.empty;
80+
defined_idents = Set_ident.empty}
81+
let obj = free_variables init
82+
let clean_up init =
83+
init.used_idents <- Set_ident.empty;
84+
init.defined_idents <- Set_ident.empty
7985

8086
let free_variables_of_statement st =
81-
let init = {used_idents = Set_ident.empty;
82-
defined_idents = Set_ident.empty} in
83-
let obj = free_variables init in
87+
clean_up init;
8488
obj.statement obj st ;
8589
Set_ident.diff init.used_idents init.defined_idents
8690

8791
let free_variables_of_expression st =
88-
let init = {used_idents = Set_ident.empty;
89-
defined_idents = Set_ident.empty} in
90-
let obj = free_variables init in
92+
clean_up init;
9193
obj.expression obj st ;
9294
Set_ident.diff init.used_idents init.defined_idents
9395

0 commit comments

Comments
 (0)