Browse Source

pastojs: record complex only for records with class vars

git-svn-id: trunk@48131 -
Mattias Gaertner 4 years ago
parent
commit
22864b47e4
2 changed files with 17 additions and 3 deletions
  1. 1 1
      packages/pastojs/src/fppas2js.pp
  2. 16 2
      packages/pastojs/tests/tcmodules.pas

+ 1 - 1
packages/pastojs/src/fppas2js.pp

@@ -26464,7 +26464,7 @@ begin
           if (C=TPasConstructor)
               or ((aResolver<>nil) and aResolver.IsClassMethod(P)
                 and not aResolver.MethodIsStatic(TPasProcedure(P))) then
-            IsComplex:=true; // needs $record
+            ; //IsComplex:=true; // needs $record
           end;
         end
       else if C=TPasAttributes then

+ 16 - 2
packages/pastojs/tests/tcmodules.pas

@@ -12339,12 +12339,20 @@ begin
   'type',
   '  TPoint = record',
   '    x,y: longint;',
+  '    class procedure Run(w: longint = 13); static;',
   '    constructor Create(ax: longint; ay: longint = -1);',
   '  end;',
+  'class procedure tpoint.run(w: longint);',
+  'begin',
+  '   run;',
+  '   run();',
+  'end;',
   'constructor tpoint.create(ax,ay: longint);',
   'begin',
   '  x:=ax;',
   '  self.y:=ay;',
+  ' run;',
+  '  run(ax);',
   'end;',
   'var r: TPoint;',
   'begin',
@@ -12367,12 +12375,18 @@ begin
     '    this.y = s.y;',
     '    return this;',
     '  };',
+    '  this.Run = function (w) {',
+    '    $mod.TPoint.Run(13);',
+    '    $mod.TPoint.Run(13);',
+    '  };',
     '  this.Create = function (ax, ay) {',
     '    this.x = ax;',
     '    this.y = ay;',
+    '    this.Run(13);',
+    '    this.Run(ax);',
     '    return this;',
     '  };',
-    '}, true);',
+    '});',
     'this.r = this.TPoint.$new();',
     '']),
     LinesToStr([ // $mod.$main
@@ -23288,7 +23302,7 @@ begin
     '    $mod.THelper.$new("NewHlp", [3]);',
     '    return this;',
     '  };',
-    '}, true);',
+    '});',
     'rtl.createHelper(this, "THelper", null, function () {',
     '  this.NewHlp = function (w) {',
     '    this.Create(2);',