@@ -46,46 +46,9 @@ namespace ts {
4646 array . hasTrailingComma = true ;
4747 }
4848
49- array . arrayKind = ArrayKind . NodeArray ;
5049 return array ;
5150 }
5251
53- export function createModifiersArray ( elements ?: Modifier [ ] , location ?: TextRange ) : ModifiersArray {
54- if ( elements ) {
55- if ( isModifiersArray ( elements ) ) {
56- return elements ;
57- }
58- }
59- else {
60- elements = [ ] ;
61- }
62-
63- const array = < ModifiersArray > elements ;
64- if ( location ) {
65- array . pos = location . pos ;
66- array . end = location . end ;
67- }
68- else {
69- array . pos = - 1 ;
70- array . end = - 1 ;
71- }
72-
73- array . arrayKind = ArrayKind . ModifiersArray ;
74- return array ;
75- }
76-
77- export function setModifiers < T extends Node > ( node : T , modifiers : Modifier [ ] ) {
78- if ( modifiers ) {
79- const array = createModifiersArray ( modifiers ) ;
80- node . modifiers = array ;
81- }
82- else {
83- node . modifiers = undefined ;
84- }
85-
86- return node ;
87- }
88-
8952 export function createSynthesizedNode ( kind : SyntaxKind , startsOnNewLine ?: boolean ) : Node {
9053 const node = createNode ( kind , /*location*/ undefined ) ;
9154 node . startsOnNewLine = startsOnNewLine ;
@@ -96,10 +59,6 @@ namespace ts {
9659 return createNodeArray ( elements , /*location*/ undefined ) ;
9760 }
9861
99- export function createSynthesizedModifiersArray ( elements ?: Modifier [ ] ) : ModifiersArray {
100- return createModifiersArray ( elements , /*location*/ undefined ) ;
101- }
102-
10362 /**
10463 * Creates a shallow, memberwise clone of a node with no source map location.
10564 */
@@ -238,7 +197,7 @@ namespace ts {
238197 export function createMethod ( modifiers : Modifier [ ] , name : string | PropertyName , parameters : ParameterDeclaration [ ] , body : Block , location ?: TextRange ) {
239198 const node = < MethodDeclaration > createNode ( SyntaxKind . MethodDeclaration , location ) ;
240199 node . decorators = undefined ;
241- setModifiers ( node , modifiers ) ;
200+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
242201 node . name = typeof name === "string" ? createIdentifier ( name ) : name ;
243202 node . typeParameters = undefined ;
244203 node . parameters = createNodeArray ( parameters ) ;
@@ -260,7 +219,7 @@ namespace ts {
260219 export function createGetAccessor ( modifiers : Modifier [ ] , name : string | PropertyName , body : Block , location ?: TextRange ) {
261220 const node = < GetAccessorDeclaration > createNode ( SyntaxKind . GetAccessor , location ) ;
262221 node . decorators = undefined ;
263- setModifiers ( node , modifiers ) ;
222+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
264223 node . name = typeof name === "string" ? createIdentifier ( name ) : name ;
265224 node . typeParameters = undefined ;
266225 node . parameters = createNodeArray < ParameterDeclaration > ( ) ;
@@ -271,7 +230,7 @@ namespace ts {
271230 export function createSetAccessor ( modifiers : Modifier [ ] , name : string | PropertyName , parameter : ParameterDeclaration , body : Block , location ?: TextRange ) {
272231 const node = < SetAccessorDeclaration > createNode ( SyntaxKind . SetAccessor , location ) ;
273232 node . decorators = undefined ;
274- setModifiers ( node , modifiers ) ;
233+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
275234 node . name = typeof name === "string" ? createIdentifier ( name ) : name ;
276235 node . typeParameters = undefined ;
277236 node . parameters = createNodeArray ( [ parameter ] ) ;
@@ -463,7 +422,7 @@ namespace ts {
463422 export function createVariableStatement ( modifiers : Modifier [ ] , declarationList : VariableDeclarationList , location ?: TextRange ) : VariableStatement {
464423 const node = < VariableStatement > createNode ( SyntaxKind . VariableStatement , location ) ;
465424 node . decorators = undefined ;
466- setModifiers ( node , modifiers ) ;
425+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
467426 node . declarationList = declarationList ;
468427 return node ;
469428 }
@@ -562,7 +521,7 @@ namespace ts {
562521 export function createFunctionDeclaration ( modifiers : Modifier [ ] , asteriskToken : Node , name : string | Identifier , parameters : ParameterDeclaration [ ] , body : Block , location ?: TextRange , original ?: Node ) {
563522 const node = < FunctionDeclaration > createNode ( SyntaxKind . FunctionDeclaration , location ) ;
564523 node . decorators = undefined ;
565- setModifiers ( node , modifiers ) ;
524+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
566525 node . asteriskToken = asteriskToken ;
567526 node . name = typeof name === "string" ? createIdentifier ( name ) : name ;
568527 node . typeParameters = undefined ;
@@ -578,7 +537,7 @@ namespace ts {
578537 export function createClassDeclaration ( modifiers : Modifier [ ] , name : Identifier , heritageClauses : HeritageClause [ ] , members : ClassElement [ ] , location ?: TextRange ) {
579538 const node = < ClassDeclaration > createNode ( SyntaxKind . ClassDeclaration , location ) ;
580539 node . decorators = undefined ;
581- setModifiers ( node , modifiers ) ;
540+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
582541 node . name = name ;
583542 node . typeParameters = undefined ;
584543 node . heritageClauses = createNodeArray ( heritageClauses ) ;
0 commit comments