瀏覽代碼

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

Henrique Gottardi Werlang 1 年之前
父節點
當前提交
8e8d4e7ea8
共有 1 個文件被更改,包括 8 次插入1 次删除
  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