diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index 9e901dd9ef..b088a6d3d5 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -280,6 +280,7 @@ Not in Version 1.0: - array of static array: setlength - array range char, char range, integer range, enum range - array of const + - TestArray_DynArrayConst: Chars: array of char = ''aoc''; - sets - set of char, boolean, integer range, char range, enum range - call array of proc element without () diff --git a/packages/pastojs/tests/tcmodules.pas b/packages/pastojs/tests/tcmodules.pas index a03931336b..5650c96734 100644 --- a/packages/pastojs/tests/tcmodules.pas +++ b/packages/pastojs/tests/tcmodules.pas @@ -297,9 +297,10 @@ type Procedure TestArray_Concat; Procedure TestArray_Copy; Procedure TestArray_InsertDelete; + Procedure TestArray_DynArrayConst; Procedure TestExternalClass_TypeCastArrayToExternalArray; Procedure TestExternalClass_TypeCastArrayFromExternalArray; - // ToDo: array const + // ToDo: static array const // ToDo: SetLength(array of static array) // ToDo: SetLength(dim1,dim2) @@ -5198,6 +5199,36 @@ begin ''])); end; +procedure TTestModule.TestArray_DynArrayConst; +begin + StartProgram(false); + Add([ + 'type', + ' integer = longint;', + ' TArrInt = array of integer;', + ' TArrStr = array of string;', + 'const', + ' Ints: TArrInt = (1,2,3);', + ' Names: array of string = (''a'',''foo'');', + ' Aliases: TarrStr = (''foo'',''b'');', + ' OneInt: TArrInt = (7);', + ' OneStr: array of integer = (7);', + //' Chars: array of char = ''aoc'';', + 'begin', + '']); + ConvertProgram; + CheckSource('TestArray_DynArrayConst', + LinesToStr([ // statements + 'this.Ints = [1, 2, 3];', + 'this.Names = ["a", "foo"];', + 'this.Aliases = ["foo", "b"];', + 'this.OneInt = [7];', + 'this.OneStr = [7];', + '']), + LinesToStr([ // $mod.$main + ''])); +end; + procedure TTestModule.TestExternalClass_TypeCastArrayToExternalArray; begin StartProgram(false);