소스 검색

pastojs: added test dynarray const

git-svn-id: trunk@35911 -
Mattias Gaertner 8 년 전
부모
커밋
f786d3deab
2개의 변경된 파일33개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      packages/pastojs/src/fppas2js.pp
  2. 32 1
      packages/pastojs/tests/tcmodules.pas

+ 1 - 0
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 ()

+ 32 - 1
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);