@@ -524,9 +524,9 @@ namespace ts {
524524 return node ;
525525 }
526526
527- export function createFunctionExpression ( asteriskToken : Node , name : string | Identifier , typeParameters : TypeParameterDeclaration [ ] , parameters : ParameterDeclaration [ ] , type : TypeNode , body : Block , location ?: TextRange , flags ?: NodeFlags ) {
527+ export function createFunctionExpression ( modifiers : Modifier [ ] , asteriskToken : Node , name : string | Identifier , typeParameters : TypeParameterDeclaration [ ] , parameters : ParameterDeclaration [ ] , type : TypeNode , body : Block , location ?: TextRange , flags ?: NodeFlags ) {
528528 const node = < FunctionExpression > createNode ( SyntaxKind . FunctionExpression , location , flags ) ;
529- node . modifiers = undefined ;
529+ node . modifiers = modifiers ? createNodeArray ( modifiers ) : undefined ;
530530 node . asteriskToken = asteriskToken ;
531531 node . name = typeof name === "string" ? createIdentifier ( name ) : name ;
532532 node . typeParameters = typeParameters ? createNodeArray ( typeParameters ) : undefined ;
@@ -536,9 +536,9 @@ namespace ts {
536536 return node ;
537537 }
538538
539- export function updateFunctionExpression ( node : FunctionExpression , name : Identifier , typeParameters : TypeParameterDeclaration [ ] , parameters : ParameterDeclaration [ ] , type : TypeNode , body : Block ) {
540- if ( node . name !== name || node . typeParameters !== typeParameters || node . parameters !== parameters || node . type !== type || node . body !== body ) {
541- return updateNode ( createFunctionExpression ( node . asteriskToken , name , typeParameters , parameters , type , body , /*location*/ node , node . flags ) , node ) ;
539+ export function updateFunctionExpression ( node : FunctionExpression , modifiers : Modifier [ ] , name : Identifier , typeParameters : TypeParameterDeclaration [ ] , parameters : ParameterDeclaration [ ] , type : TypeNode , body : Block ) {
540+ if ( node . name !== name || node . modifiers !== modifiers || node . typeParameters !== typeParameters || node . parameters !== parameters || node . type !== type || node . body !== body ) {
541+ return updateNode ( createFunctionExpression ( modifiers , node . asteriskToken , name , typeParameters , parameters , type , body , /*location*/ node , node . flags ) , node ) ;
542542 }
543543 return node ;
544544 }
@@ -1735,6 +1735,7 @@ namespace ts {
17351735
17361736 export function createAwaiterHelper ( externalHelpersModuleName : Identifier | undefined , hasLexicalArguments : boolean , promiseConstructor : EntityName | Expression , body : Block ) {
17371737 const generatorFunc = createFunctionExpression (
1738+ /*modifiers*/ undefined ,
17381739 createNode ( SyntaxKind . AsteriskToken ) ,
17391740 /*name*/ undefined ,
17401741 /*typeParameters*/ undefined ,
@@ -1908,6 +1909,7 @@ namespace ts {
19081909 createCall (
19091910 createParen (
19101911 createFunctionExpression (
1912+ /*modifiers*/ undefined ,
19111913 /*asteriskToken*/ undefined ,
19121914 /*name*/ undefined ,
19131915 /*typeParameters*/ undefined ,
@@ -2089,6 +2091,7 @@ namespace ts {
20892091 const properties : ObjectLiteralElementLike [ ] = [ ] ;
20902092 if ( getAccessor ) {
20912093 const getterFunction = createFunctionExpression (
2094+ getAccessor . modifiers ,
20922095 /*asteriskToken*/ undefined ,
20932096 /*name*/ undefined ,
20942097 /*typeParameters*/ undefined ,
@@ -2104,6 +2107,7 @@ namespace ts {
21042107
21052108 if ( setAccessor ) {
21062109 const setterFunction = createFunctionExpression (
2110+ setAccessor . modifiers ,
21072111 /*asteriskToken*/ undefined ,
21082112 /*name*/ undefined ,
21092113 /*typeParameters*/ undefined ,
@@ -2170,6 +2174,7 @@ namespace ts {
21702174 createMemberAccessForPropertyName ( receiver , method . name , /*location*/ method . name ) ,
21712175 setOriginalNode (
21722176 createFunctionExpression (
2177+ method . modifiers ,
21732178 method . asteriskToken ,
21742179 /*name*/ undefined ,
21752180 /*typeParameters*/ undefined ,
@@ -2909,4 +2914,4 @@ namespace ts {
29092914 function tryGetModuleNameFromDeclaration ( declaration : ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration , host : EmitHost , resolver : EmitResolver , compilerOptions : CompilerOptions ) {
29102915 return tryGetModuleNameFromFile ( resolver . getExternalModuleFileFromDeclaration ( declaration ) , host , compilerOptions ) ;
29112916 }
2912- }
2917+ }
0 commit comments