Browse Source

pastojs: filer: record values

git-svn-id: trunk@47684 -
(cherry picked from commit 0be298802b29e2546240f596cdedb1756a842741)
Mattias Gaertner 4 years ago
parent
commit
3991326d6b
1 changed files with 6 additions and 11 deletions
  1. 6 11
      packages/pastojs/src/pas2jsfiler.pp

+ 6 - 11
packages/pastojs/src/pas2jsfiler.pp

@@ -3965,9 +3965,8 @@ begin
       SubObj:=TJSONObject.Create;
       SubObj:=TJSONObject.Create;
       Arr.Add(SubObj);
       Arr.Add(SubObj);
       SubObj.Add('Name',RecValue.Name);
       SubObj.Add('Name',RecValue.Name);
-      if (RecValue.ValueExp<>nil) and (RecValue.ValueExp.Name<>'') then
-        RaiseMsg(20180209192240,RecValue.ValueExp);
-      WriteElement(SubObj,RecValue.ValueExp,aContext);
+      WriteExpr(SubObj,Expr,'NameExpr',RecValue.NameExp,aContext);
+      WriteExpr(SubObj,Expr,'ValueExpr',RecValue.ValueExp,aContext);
       end;
       end;
     end;
     end;
 end;
 end;
@@ -8362,7 +8361,6 @@ var
   i: Integer;
   i: Integer;
   Data: TJSONData;
   Data: TJSONData;
   SubObj: TJSONObject;
   SubObj: TJSONObject;
-  SubEl: TPasElement;
   aName: string;
   aName: string;
 begin
 begin
   ReadPasExpr(Obj,Expr,pekListOfExp,aContext);
   ReadPasExpr(Obj,Expr,pekListOfExp,aContext);
@@ -8375,13 +8373,10 @@ begin
       if not (Data is TJSONObject) then
       if not (Data is TJSONObject) then
         RaiseMsg(20180210173636,Expr,'['+IntToStr(i)+'] is '+GetObjName(Data));
         RaiseMsg(20180210173636,Expr,'['+IntToStr(i)+'] is '+GetObjName(Data));
       SubObj:=TJSONObject(Data);
       SubObj:=TJSONObject(Data);
-      if ReadString(SubObj,'Name',aName,Expr) then
-        Expr.Fields[i].Name:=aName;
-      SubEl:=ReadNewElement(SubObj,Expr);
-      if not (SubEl is TPasExpr) then
-        RaiseMsg(20180210174041,Expr,'['+IntToStr(i)+'] is '+GetObjName(SubEl));
-      Expr.Fields[i].ValueExp:=TPasExpr(SubEl);
-      ReadElement(SubObj,SubEl,aContext);
+      if not ReadString(SubObj,'Name',aName,Expr) then
+        RaiseMsg(20201204144308,Expr);
+      Expr.Fields[i].NameExp:=ReadExpr(SubObj,Expr,'NameExpr',aContext) as TPrimitiveExpr;
+      Expr.Fields[i].ValueExp:=ReadExpr(SubObj,Expr,'ValueExpr',aContext);
       end;
       end;
     end;
     end;
 end;
 end;