@@ -987,7 +987,7 @@ namespace ts {
987987 return name . kind === SyntaxKind . ComputedPropertyName && ! isStringOrNumericLiteralLike ( name . expression ) ;
988988 }
989989
990- export function getTextOfPropertyName ( name : PropertyName | NoSubstitutionTemplateLiteral ) : __String {
990+ export function tryGetTextOfPropertyName ( name : PropertyName | NoSubstitutionTemplateLiteral ) : __String | undefined {
991991 switch ( name . kind ) {
992992 case SyntaxKind . Identifier :
993993 case SyntaxKind . PrivateIdentifier :
@@ -998,12 +998,16 @@ namespace ts {
998998 return escapeLeadingUnderscores ( name . text ) ;
999999 case SyntaxKind . ComputedPropertyName :
10001000 if ( isStringOrNumericLiteralLike ( name . expression ) ) return escapeLeadingUnderscores ( name . expression . text ) ;
1001- return Debug . fail ( "Text of property name cannot be read from non-literal-valued ComputedPropertyNames" ) ;
1001+ return undefined ;
10021002 default :
10031003 return Debug . assertNever ( name ) ;
10041004 }
10051005 }
10061006
1007+ export function getTextOfPropertyName ( name : PropertyName | NoSubstitutionTemplateLiteral ) : __String {
1008+ return Debug . checkDefined ( tryGetTextOfPropertyName ( name ) ) ;
1009+ }
1010+
10071011 export function entityNameToString ( name : EntityNameOrEntityNameExpression | JSDocMemberName | JsxTagNameExpression | PrivateIdentifier ) : string {
10081012 switch ( name . kind ) {
10091013 case SyntaxKind . ThisKeyword :
@@ -1573,7 +1577,7 @@ namespace ts {
15731577 export function getPropertyAssignment ( objectLiteral : ObjectLiteralExpression , key : string , key2 ?: string ) : readonly PropertyAssignment [ ] {
15741578 return objectLiteral . properties . filter ( ( property ) : property is PropertyAssignment => {
15751579 if ( property . kind === SyntaxKind . PropertyAssignment ) {
1576- const propName = getTextOfPropertyName ( property . name ) ;
1580+ const propName = tryGetTextOfPropertyName ( property . name ) ;
15771581 return key === propName || ( ! ! key2 && key2 === propName ) ;
15781582 }
15791583 return false ;
0 commit comments