@@ -6,12 +6,16 @@ namespace ts {
66
77 let NodeConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
88 let TokenConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
9+ let IdentifierConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
910 let SourceFileConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
1011
1112 export function createNode ( kind : SyntaxKind , pos ?: number , end ?: number ) : Node {
1213 if ( kind === SyntaxKind . SourceFile ) {
1314 return new ( SourceFileConstructor || ( SourceFileConstructor = objectAllocator . getSourceFileConstructor ( ) ) ) ( kind , pos , end ) ;
1415 }
16+ else if ( kind === SyntaxKind . Identifier ) {
17+ return new ( IdentifierConstructor || ( IdentifierConstructor = objectAllocator . getIdentifierConstructor ( ) ) ) ( kind , pos , end ) ;
18+ }
1519 else if ( kind < SyntaxKind . FirstNode ) {
1620 return new ( TokenConstructor || ( TokenConstructor = objectAllocator . getTokenConstructor ( ) ) ) ( kind , pos , end ) ;
1721 }
@@ -471,6 +475,7 @@ namespace ts {
471475 // capture constructors in 'initializeState' to avoid null checks
472476 let NodeConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
473477 let TokenConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
478+ let IdentifierConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
474479 let SourceFileConstructor : new ( kind : SyntaxKind , pos : number , end : number ) => Node ;
475480
476481 let sourceFile : SourceFile ;
@@ -582,6 +587,7 @@ namespace ts {
582587 function initializeState ( fileName : string , _sourceText : string , languageVersion : ScriptTarget , _syntaxCursor : IncrementalParser . SyntaxCursor , scriptKind : ScriptKind ) {
583588 NodeConstructor = objectAllocator . getNodeConstructor ( ) ;
584589 TokenConstructor = objectAllocator . getTokenConstructor ( ) ;
590+ IdentifierConstructor = objectAllocator . getIdentifierConstructor ( ) ;
585591 SourceFileConstructor = objectAllocator . getSourceFileConstructor ( ) ;
586592
587593 sourceText = _sourceText ;
@@ -1030,9 +1036,9 @@ namespace ts {
10301036 pos = scanner . getStartPos ( ) ;
10311037 }
10321038
1033- return kind >= SyntaxKind . FirstNode ?
1034- new NodeConstructor ( kind , pos , pos ) :
1035- new TokenConstructor ( kind , pos , pos ) ;
1039+ return kind >= SyntaxKind . FirstNode ? new NodeConstructor ( kind , pos , pos ) :
1040+ kind === SyntaxKind . Identifier ? new IdentifierConstructor ( kind , pos , pos ) :
1041+ new TokenConstructor ( kind , pos , pos ) ;
10361042 }
10371043
10381044 function finishNode < T extends Node > ( node : T , end ?: number ) : T {
0 commit comments