@@ -692,12 +692,23 @@ var LuaTranspiler = /** @class */ (function () {
692692 return result ;
693693 } ;
694694 LuaTranspiler . prototype . transpileConstructor = function ( node , className , instanceFields ) {
695+ var extraInstanceFields = [ ] ;
695696 var parameters = [ "self" ] ;
696- node . parameters . forEach ( function ( param ) { return parameters . push ( param . name . escapedText ) ; } ) ;
697+ node . parameters . forEach ( function ( param ) {
698+ // If param has decorators, add extra instance field
699+ if ( param . modifiers != undefined )
700+ extraInstanceFields . push ( param . name . escapedText ) ;
701+ // Add to parameter list
702+ parameters . push ( param . name . escapedText ) ;
703+ } ) ;
697704 var result = this . indent + ( "function " + className + ".constructor(" + parameters . join ( "," ) + ")\n" ) ;
698705 // Add in instance field declarations
699- for ( var _i = 0 , instanceFields_1 = instanceFields ; _i < instanceFields_1 . length ; _i ++ ) {
700- var f = instanceFields_1 [ _i ] ;
706+ for ( var _i = 0 , extraInstanceFields_1 = extraInstanceFields ; _i < extraInstanceFields_1 . length ; _i ++ ) {
707+ var f = extraInstanceFields_1 [ _i ] ;
708+ result += this . indent + ( " self." + f + " = " + f + "\n" ) ;
709+ }
710+ for ( var _a = 0 , instanceFields_1 = instanceFields ; _a < instanceFields_1 . length ; _a ++ ) {
711+ var f = instanceFields_1 [ _a ] ;
701712 // Get identifier
702713 var fieldIdentifier = f . name ;
703714 var fieldName = fieldIdentifier . escapedText ;
0 commit comments