@@ -814,18 +814,19 @@ namespace ts {
814
814
*/
815
815
function transformClassBody ( node : ClassExpression | ClassDeclaration , extendsClauseElement : ExpressionWithTypeArguments | undefined ) : Block {
816
816
const statements : Statement [ ] = [ ] ;
817
+ const name = factory . getInternalName ( node ) ;
818
+ const constructorLikeName = isIdentifierANonContextualKeyword ( name ) ? factory . getGeneratedNameForNode ( name ) : name ;
817
819
startLexicalEnvironment ( ) ;
818
820
addExtendsHelperIfNeeded ( statements , node , extendsClauseElement ) ;
819
- addConstructor ( statements , node , extendsClauseElement ) ;
821
+ addConstructor ( statements , node , constructorLikeName , extendsClauseElement ) ;
820
822
addClassMembers ( statements , node ) ;
821
823
822
824
// Create a synthetic text range for the return statement.
823
825
const closingBraceLocation = createTokenRange ( skipTrivia ( currentText , node . members . end ) , SyntaxKind . CloseBraceToken ) ;
824
- const localName = factory . getInternalName ( node ) ;
825
826
826
827
// The following partially-emitted expression exists purely to align our sourcemap
827
828
// emit with the original emitter.
828
- const outer = factory . createPartiallyEmittedExpression ( localName ) ;
829
+ const outer = factory . createPartiallyEmittedExpression ( constructorLikeName ) ;
829
830
setTextRangeEnd ( outer , closingBraceLocation . end ) ;
830
831
setEmitFlags ( outer , EmitFlags . NoComments ) ;
831
832
@@ -868,7 +869,7 @@ namespace ts {
868
869
* @param node The ClassExpression or ClassDeclaration node.
869
870
* @param extendsClauseElement The expression for the class `extends` clause.
870
871
*/
871
- function addConstructor ( statements : Statement [ ] , node : ClassExpression | ClassDeclaration , extendsClauseElement : ExpressionWithTypeArguments | undefined ) : void {
872
+ function addConstructor ( statements : Statement [ ] , node : ClassExpression | ClassDeclaration , name : Identifier , extendsClauseElement : ExpressionWithTypeArguments | undefined ) : void {
872
873
const savedConvertedLoopState = convertedLoopState ;
873
874
convertedLoopState = undefined ;
874
875
const ancestorFacts = enterSubtree ( HierarchyFacts . ConstructorExcludes , HierarchyFacts . ConstructorIncludes ) ;
@@ -878,7 +879,7 @@ namespace ts {
878
879
/*decorators*/ undefined ,
879
880
/*modifiers*/ undefined ,
880
881
/*asteriskToken*/ undefined ,
881
- factory . getInternalName ( node ) ,
882
+ name ,
882
883
/*typeParameters*/ undefined ,
883
884
transformConstructorParameters ( constructor , hasSynthesizedSuper ) ,
884
885
/*type*/ undefined ,
0 commit comments