Browse Source

pastojs: external names can be char

git-svn-id: trunk@35843 -
Mattias Gaertner 8 years ago
parent
commit
dd9630b1d7
1 changed files with 31 additions and 1 deletions
  1. 31 1
      packages/pastojs/tests/tcmodules.pas

+ 31 - 1
packages/pastojs/tests/tcmodules.pas

@@ -366,7 +366,8 @@ type
 
     // external class
     Procedure TestExternalClass_Var;
-    // ToDo TestExternalClass_Const
+    //ToDo Procedure TestExternalClass_Const;
+    Procedure TestExternalClass_Dollar;
     Procedure TestExternalClass_DuplicateVarFail;
     Procedure TestExternalClass_Method;
     Procedure TestExternalClass_NonExternalOverride;
@@ -8341,6 +8342,35 @@ begin
     '']));
 end;
 
+procedure TTestModule.TestExternalClass_Dollar;
+begin
+  StartProgram(false);
+  Add([
+  '{$modeswitch externalclass}',
+  'type',
+  '  TExtA = class external name ''$''',
+  '    Id: longint external name ''$'';',
+  '    function Bla(i: longint): longint; external name ''$'';',
+  '  end;',
+  'function dollar(k: longint): longint; external name ''$'';',
+  'var Obj: TExtA;',
+  'begin',
+  '  dollar(1);',
+  '  obj.id:=obj.id+2;',
+  '  obj.Bla(3);',
+  '']);
+  ConvertProgram;
+  CheckSource('TestExternalClass_Dollar',
+    LinesToStr([ // statements
+    'this.Obj = null;',
+    '']),
+    LinesToStr([ // $mod.$main
+    '$(1);',
+    '$mod.Obj.$ = $mod.Obj.$ + 2;',
+    '$mod.Obj.$(3);',
+    '']));
+end;
+
 procedure TTestModule.TestExternalClass_DuplicateVarFail;
 begin
   StartProgram(false);