summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-06 21:34:45 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-06 21:34:45 +0000
commitbecb5c83fef87d60b801b79cb608cb0e90f71f97 (patch)
tree67050f90ac75cac6f12e1b9fa343d72190c80b7c
parent91e7ac11fc5d52df7169d62b4743cadfeb6d07ce (diff)
downloadfpc-becb5c83fef87d60b801b79cb608cb0e90f71f97.tar.gz
pastojs: fixed create TGUID object literal
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48889 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/pastojs/src/fppas2js.pp31
1 files changed, 24 insertions, 7 deletions
diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp
index 384f940e04..f931f6c38d 100644
--- a/packages/pastojs/src/fppas2js.pp
+++ b/packages/pastojs/src/fppas2js.pp
@@ -20520,34 +20520,51 @@ function TPasToJSConverter.CreateGUIDObjLit(aTGUIDRecord: TPasRecordType;
const GUID: TGUID; PosEl: TPasElement; AContext: TConvertContext
): TJSObjectLiteral;
var
+ i: integer;
Members: TFPList;
+
+ function GetMember(const aName: string): TPasElement;
+ begin
+ while i<Members.Count do
+ begin
+ Result:=TPasElement(Members[i]);
+ inc(i);
+ if (Result is TPasVariable) then
+ if SameText(Result.Name,aName) then
+ exit
+ else
+ RaiseInconsistency(20180415094721,PosEl);
+ end;
+ RaiseInconsistency(20210306223031,PosEl);
+ end;
+
+var
PropEl: TJSObjectLiteralElement;
MemberEl: TPasElement;
ArrLit: TJSArrayLiteral;
- i: Integer;
begin
Members:=aTGUIDRecord.Members;
Result:=TJSObjectLiteral(CreateElement(TJSObjectLiteral,PosEl));
+ i:=0;
+
// D1: 0x12345678
+ MemberEl:=GetMember('D1');
PropEl:=Result.Elements.AddElement;
- MemberEl:=TPasElement(Members[0]);
- if not SameText(MemberEl.Name,'D1') then
- RaiseInconsistency(20180415094721,PosEl);
PropEl.Name:=TJSString(TransformElToJSName(MemberEl,AContext));
PropEl.Expr:=CreateLiteralHexNumber(PosEl,GUID.D1,8);
// D2: 0x1234
+ MemberEl:=GetMember('D2');
PropEl:=Result.Elements.AddElement;
- MemberEl:=TPasElement(Members[1]);
PropEl.Name:=TJSString(TransformElToJSName(MemberEl,AContext));
PropEl.Expr:=CreateLiteralHexNumber(PosEl,GUID.D2,4);
// D3: 0x1234
+ MemberEl:=GetMember('D3');
PropEl:=Result.Elements.AddElement;
- MemberEl:=TPasElement(Members[2]);
PropEl.Name:=TJSString(TransformElToJSName(MemberEl,AContext));
PropEl.Expr:=CreateLiteralHexNumber(PosEl,GUID.D3,4);
// D4: [0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12]
+ MemberEl:=GetMember('D4');
PropEl:=Result.Elements.AddElement;
- MemberEl:=TPasElement(Members[3]);
PropEl.Name:=TJSString(TransformElToJSName(MemberEl,AContext));
ArrLit:=TJSArrayLiteral(CreateElement(TJSArrayLiteral,PosEl));
PropEl.Expr:=ArrLit;