@@ -52,6 +52,8 @@ class type mapper = object
5252 -> Javascript. for_binding
5353 -> Javascript. for_binding
5454
55+ method binding_property : Javascript. binding_property -> Javascript. binding_property
56+
5557 method variable_declaration :
5658 Javascript. variable_declaration_kind
5759 -> Javascript. variable_declaration
@@ -295,10 +297,11 @@ class map : mapper =
295297 EAssignTarget
296298 (ObjectTarget
297299 (List. map l ~f: (function
298- | TargetPropertyId (i , e ) ->
299- TargetPropertyId (m#ident i, m#initialiser_o e)
300- | TargetProperty (i , e ) ->
301- TargetProperty (m#property_name i, m#expression e)
300+ | TargetPropertyId (Prop_and_ident i , e ) ->
301+ TargetPropertyId (Prop_and_ident (m#ident i), m#initialiser_o e)
302+ | TargetProperty (n , e , i ) ->
303+ TargetProperty
304+ (m#property_name n, m#expression e, m#initialiser_o i)
302305 | TargetPropertyMethod (n , x ) ->
303306 TargetPropertyMethod (m#property_name n, m#method_ x)
304307 | TargetPropertySpread e -> TargetPropertySpread (m#expression e))))
@@ -376,10 +379,11 @@ class map : mapper =
376379 | None -> None
377380 | Some (b , e ) -> Some (m#binding b, m#initialiser_o e)
378381
379- method private binding_property x =
382+ method binding_property x =
380383 match x with
381384 | Prop_binding (i , e ) -> Prop_binding (m#property_name i, m#binding_element e)
382- | Prop_ident (i , e ) -> Prop_ident (m#ident i, m#initialiser_o e)
385+ | Prop_ident (Prop_and_ident i , e ) ->
386+ Prop_ident (Prop_and_ident (m#ident i), m#initialiser_o e)
383387
384388 method expression_o x =
385389 match x with
@@ -641,12 +645,13 @@ class iter : iterator =
641645 | TargetElementSpread e -> m#expression e)
642646 | ObjectTarget l ->
643647 List. iter l ~f: (function
644- | TargetPropertyId (i , e ) ->
648+ | TargetPropertyId (Prop_and_ident i , e ) ->
645649 m#ident i;
646650 m#initialiser_o e
647- | TargetProperty (i , e ) ->
648- m#property_name i;
649- m#expression e
651+ | TargetProperty (n , e , i ) ->
652+ m#property_name n;
653+ m#expression e;
654+ m#initialiser_o i
650655 | TargetPropertyMethod (n , x ) ->
651656 m#property_name n;
652657 m#method_ x
@@ -736,7 +741,7 @@ class iter : iterator =
736741 method private binding_property x =
737742 match x with
738743 | Prop_binding ((_ : property_name ), e ) -> m#binding_element e
739- | Prop_ident (i , e ) ->
744+ | Prop_ident (Prop_and_ident i , e ) ->
740745 m#ident i;
741746 m#initialiser_o e
742747
@@ -1340,6 +1345,14 @@ class rename_variable ~esm =
13401345 let m' = m#update_state Lexical_block [] p in
13411346 m'#statements p
13421347
1348+ method binding_property x =
1349+ match x with
1350+ | Prop_ident (Prop_and_ident (S { name = Utf8 name' as name; _ } as ident), e)
1351+ when StringMap. mem name' subst ->
1352+ let x = Prop_binding (PNI name, (BindingIdent ident, e)) in
1353+ super#binding_property x
1354+ | x -> x
1355+
13431356 method expression e =
13441357 match e with
13451358 | EFun (ident , (k , params , body , nid )) ->
@@ -1351,6 +1364,16 @@ class rename_variable ~esm =
13511364 | EClass (Some id , cl_decl ) ->
13521365 let m' = m#update_state Lexical_block [ id ] [] in
13531366 EClass (Some (m'#ident id), m'#class_decl cl_decl)
1367+ | EAssignTarget (ObjectTarget l ) ->
1368+ let l =
1369+ List. map l ~f: (function
1370+ | TargetPropertyId
1371+ (Prop_and_ident (S { name = Utf8 name' as name; _ } as ident), rhs)
1372+ when StringMap. mem name' subst ->
1373+ TargetProperty (PNI name, EVar ident, rhs)
1374+ | b -> b)
1375+ in
1376+ super#expression (EAssignTarget (ObjectTarget l))
13541377 | _ -> super#expression e
13551378
13561379 method statement s =
0 commit comments