@@ -26,9 +26,9 @@ export function transformMethodDeclaration(
2626 context : TransformationContext ,
2727 node : ts . MethodDeclaration ,
2828 className : lua . Identifier
29- ) : lua . Statement | undefined {
29+ ) : lua . Statement [ ] {
3030 // Don't transform methods without body (overload declarations)
31- if ( ! node . body ) return ;
31+ if ( ! node . body ) return [ ] ;
3232
3333 const methodTable = transformMemberExpressionOwnerName ( node , className ) ;
3434 const methodName = transformMethodName ( context , node ) ;
@@ -40,21 +40,31 @@ export function transformMethodDeclaration(
4040 if ( methodHasDecorators || methodHasParameterDecorators ) {
4141 if ( context . options . experimentalDecorators ) {
4242 // Legacy decorator statement
43- return lua . createExpressionStatement (
44- createClassMethodDecoratingExpression ( context , node , functionExpression , className )
45- ) ;
43+ return [
44+ lua . createAssignmentStatement (
45+ lua . createTableIndexExpression ( methodTable , methodName ) ,
46+ functionExpression
47+ ) ,
48+ lua . createExpressionStatement (
49+ createClassMethodDecoratingExpression ( context , node , functionExpression , className )
50+ ) ,
51+ ] ;
4652 } else {
47- return lua . createAssignmentStatement (
48- lua . createTableIndexExpression ( methodTable , methodName ) ,
49- createClassMethodDecoratingExpression ( context , node , functionExpression , className ) ,
50- node
51- ) ;
53+ return [
54+ lua . createAssignmentStatement (
55+ lua . createTableIndexExpression ( methodTable , methodName ) ,
56+ createClassMethodDecoratingExpression ( context , node , functionExpression , className ) ,
57+ node
58+ ) ,
59+ ] ;
5260 }
5361 } else {
54- return lua . createAssignmentStatement (
55- lua . createTableIndexExpression ( methodTable , methodName ) ,
56- functionExpression ,
57- node
58- ) ;
62+ return [
63+ lua . createAssignmentStatement (
64+ lua . createTableIndexExpression ( methodTable , methodName ) ,
65+ functionExpression ,
66+ node
67+ ) ,
68+ ] ;
5969 }
6070}
0 commit comments