@@ -519,10 +519,10 @@ module ts {
519
519
return + ( text . substring ( start , pos ) ) ;
520
520
}
521
521
522
- function scanHexDigits ( count : number , useExactCount ?: boolean ) : number {
522
+ function scanHexDigits ( count : number , mustMatchCount ?: boolean ) : number {
523
523
var digits = 0 ;
524
524
var value = 0 ;
525
- while ( digits < count || ! useExactCount ) {
525
+ while ( digits < count || ! mustMatchCount ) {
526
526
var ch = text . charCodeAt ( pos ) ;
527
527
if ( ch >= CharacterCodes . _0 && ch <= CharacterCodes . _9 ) {
528
528
value = value * 16 + ch - CharacterCodes . _0 ;
@@ -582,18 +582,18 @@ module ts {
582
582
* a literal component of a TemplateExpression.
583
583
*/
584
584
function scanTemplateAndSetTokenValue ( ) : SyntaxKind {
585
- var isStartOfTemplate = text . charCodeAt ( pos ) === CharacterCodes . backtick ;
585
+ var startedWithBacktick = text . charCodeAt ( pos ) === CharacterCodes . backtick ;
586
586
587
587
pos ++ ;
588
588
var start = pos ;
589
589
var contents = ""
590
- var resultingToken = SyntaxKind . Unknown ;
590
+ var resultingToken : SyntaxKind ;
591
591
592
592
while ( true ) {
593
593
if ( pos >= len ) {
594
594
contents += text . substring ( start , pos ) ;
595
595
error ( Diagnostics . Unexpected_end_of_text ) ;
596
- resultingToken = isStartOfTemplate ? SyntaxKind . NoSubstitutionTemplateLiteral : SyntaxKind . TemplateTail ;
596
+ resultingToken = startedWithBacktick ? SyntaxKind . NoSubstitutionTemplateLiteral : SyntaxKind . TemplateTail ;
597
597
break ;
598
598
}
599
599
@@ -603,15 +603,15 @@ module ts {
603
603
if ( currChar === CharacterCodes . backtick ) {
604
604
contents += text . substring ( start , pos ) ;
605
605
pos ++ ;
606
- resultingToken = isStartOfTemplate ? SyntaxKind . NoSubstitutionTemplateLiteral : SyntaxKind . TemplateTail ;
606
+ resultingToken = startedWithBacktick ? SyntaxKind . NoSubstitutionTemplateLiteral : SyntaxKind . TemplateTail ;
607
607
break ;
608
608
}
609
609
610
610
// '${'
611
611
if ( currChar === CharacterCodes . $ && pos + 1 < len && text . charCodeAt ( pos + 1 ) === CharacterCodes . openBrace ) {
612
612
contents += text . substring ( start , pos ) ;
613
613
pos += 2 ;
614
- resultingToken = isStartOfTemplate ? SyntaxKind . TemplateHead : SyntaxKind . TemplateMiddle ;
614
+ resultingToken = startedWithBacktick ? SyntaxKind . TemplateHead : SyntaxKind . TemplateMiddle ;
615
615
break ;
616
616
}
617
617
@@ -641,6 +641,8 @@ module ts {
641
641
pos ++ ;
642
642
}
643
643
644
+ Debug . assert ( resultingToken !== undefined ) ;
645
+
644
646
tokenValue = contents ;
645
647
return resultingToken ;
646
648
}
@@ -673,7 +675,7 @@ module ts {
673
675
return "\"" ;
674
676
case CharacterCodes . x :
675
677
case CharacterCodes . u :
676
- var ch = scanHexDigits ( ch === CharacterCodes . x ? 2 : 4 , /*useExactCount */ true ) ;
678
+ var ch = scanHexDigits ( ch === CharacterCodes . x ? 2 : 4 , /*mustMatchCount */ true ) ;
677
679
if ( ch >= 0 ) {
678
680
return String . fromCharCode ( ch ) ;
679
681
}
@@ -704,7 +706,7 @@ module ts {
704
706
if ( pos + 5 < len && text . charCodeAt ( pos + 1 ) === CharacterCodes . u ) {
705
707
var start = pos ;
706
708
pos += 2 ;
707
- var value = scanHexDigits ( 4 , /*useExactCount */ true ) ;
709
+ var value = scanHexDigits ( 4 , /*mustMatchCount */ true ) ;
708
710
pos = start ;
709
711
return value ;
710
712
}
@@ -922,7 +924,7 @@ module ts {
922
924
case CharacterCodes . _0 :
923
925
if ( pos + 2 < len && ( text . charCodeAt ( pos + 1 ) === CharacterCodes . X || text . charCodeAt ( pos + 1 ) === CharacterCodes . x ) ) {
924
926
pos += 2 ;
925
- var value = scanHexDigits ( 1 , /*useExactCount */ false ) ;
927
+ var value = scanHexDigits ( 1 , /*mustMatchCount */ false ) ;
926
928
if ( value < 0 ) {
927
929
error ( Diagnostics . Hexadecimal_digit_expected ) ;
928
930
value = 0 ;
@@ -1112,7 +1114,7 @@ module ts {
1112
1114
* Unconditionally back up and scan a template expression portion.
1113
1115
*/
1114
1116
function reScanTemplateToken ( ) : SyntaxKind {
1115
- Debug . assert ( "'reScanTemplateToken' should only be called on a '}'" ) ;
1117
+ Debug . assert ( token === SyntaxKind . CloseBraceToken , "'reScanTemplateToken' should only be called on a '}'" ) ;
1116
1118
pos = tokenPos ;
1117
1119
return token = scanTemplateAndSetTokenValue ( ) ;
1118
1120
}
0 commit comments