Bläddra i källkod

Generated record info to allow creation of a record by RTTI information.

Henrique Gottardi Werlang 1 år sedan
förälder
incheckning
8e8d4e7ea8
1 ändrade filer med 8 tillägg och 1 borttagningar
  1. 8 1
      packages/pastojs/src/fppas2js.pp

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

@@ -19195,6 +19195,7 @@ var
   ObjLit: TJSObjectLiteral;
   Call: TJSCallExpression;
   HasRTTIMembers: Boolean;
+  RecordInfo: TJSObjectLiteralElement;
 begin
   // module.$rtti.$Record("typename",{});
   Call:=CreateRTTINewType(El,GetBIName(pbifnRTTINewRecord),false,FuncContext,ObjLit);
@@ -19206,7 +19207,13 @@ begin
   end;
 
   HasRTTIMembers:=CreateRTTIMembers(El,Src,FuncContext,MembersSrc,MembersFuncContext,Call,false);
-  if not HasRTTIMembers then
+  if HasRTTIMembers then
+  begin
+    RecordInfo := ObjLit.Elements.AddElement;
+    RecordInfo.Name := GetBIName(pbivnPtrRecord);
+    RecordInfo.Expr := CreatePrimitiveDotExpr('this', El);
+  end
+  else
     begin
     // no published members, add "module.$rtti.$Record..."
     if Src=MembersSrc then