@@ -1486,8 +1486,48 @@ func (b *nodeBuilderImpl) parameterToParameterDeclarationName(parameterSymbol *a
1486
1486
if parameterDeclaration == nil || parameterDeclaration .Name () == nil {
1487
1487
return b .f .NewIdentifier (parameterSymbol .Name )
1488
1488
}
1489
- // !!! TODO - symbol tracking of computed names in cloned binding patterns, set singleline emit flags
1490
- return b .f .DeepCloneNode (parameterDeclaration .Name ())
1489
+
1490
+ return b .cloneBindingName (parameterDeclaration .Name ())
1491
+ }
1492
+
1493
+ func (b * nodeBuilderImpl ) cloneBindingName (node * ast.Node ) * ast.Node {
1494
+ return b .elideInitializerAndSetEmitFlags (node )
1495
+ }
1496
+
1497
+ func (b * nodeBuilderImpl ) elideInitializerAndSetEmitFlags (node * ast.Node ) * ast.Node {
1498
+ if b .ctx .tracker != nil && ast .IsComputedPropertyName (node ) && b .ch .isLateBindableName (node ) {
1499
+ b .trackComputedName (node .Expression (), b .ctx .enclosingDeclaration )
1500
+ }
1501
+
1502
+ visited := b .visitEachChildWorker (node , b .elideInitializerAndSetEmitFlags )
1503
+
1504
+ if ast .IsBindingElement (visited ) {
1505
+ bindingElement := visited .AsBindingElement ()
1506
+ visited = b .f .UpdateBindingElement (
1507
+ bindingElement ,
1508
+ bindingElement .DotDotDotToken ,
1509
+ bindingElement .PropertyName ,
1510
+ bindingElement .Name (),
1511
+ nil , // remove initializer
1512
+ )
1513
+ }
1514
+
1515
+ if ! ast .NodeIsSynthesized (visited ) {
1516
+ visited = b .f .DeepCloneNode (visited )
1517
+ }
1518
+
1519
+ b .e .SetEmitFlags (visited , printer .EFSingleLine | printer .EFNoAsciiEscaping )
1520
+ return visited
1521
+ }
1522
+
1523
+ func (b * nodeBuilderImpl ) visitEachChildWorker (node * ast.Node , cbNode func (* ast.Node ) * ast.Node ) * ast.Node {
1524
+ if node == nil {
1525
+ return nil
1526
+ }
1527
+
1528
+ // Create a visitor that applies the callback to each child
1529
+ visitor := ast .NewNodeVisitor (cbNode , b .f , ast.NodeVisitorHooks {})
1530
+ return visitor .VisitEachChild (node )
1491
1531
}
1492
1532
1493
1533
func (b * nodeBuilderImpl ) symbolTableToDeclarationStatements (symbolTable * ast.SymbolTable ) []* ast.Node {
0 commit comments