From c8ea310a8b183233bf3b4408805e34852c929c08 Mon Sep 17 00:00:00 2001 From: Henrique Gottardi Werlang Date: Mon, 13 Jan 2025 22:32:19 -0300 Subject: [PATCH] Fix for visibility information when a function is a publish declaration. --- packages/pastojs/src/fppas2js.pp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index 51fa46b71a..17516cead7 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -20945,11 +20945,14 @@ var ResultTypeInfo: TJSElement; Call: TJSCallExpression; Flags: Integer; - ExtVis: word; + ExtVis: Integer; procedure AddExtRTTIVisibility; begin - Call.AddArg(CreateLiteralNumber(Proc,ExtVis)); + if ExtVis > -1 then + Call.AddArg(CreateLiteralNumber(Proc,ExtVis)); + + ExtVis := -1; end; procedure AddOption(const aName: String; JS: TJSElement); @@ -20959,8 +20962,7 @@ var if JS=nil then exit; if OptionsEl=nil then begin - if ExtVis=ExtRTTIVisDefaultMethod then - AddExtRTTIVisibility; + AddExtRTTIVisibility; OptionsEl:=TJSObjectLiteral(CreateElement(TJSObjectLiteral,Proc)); Call.AddArg(OptionsEl); end; @@ -21054,10 +21056,19 @@ begin ResultEl:=TPasFunction(Proc).FuncType.ResultEl; ResultTypeInfo:=CreateTypeInfoRef(ResultEl.ResultType,AContext,ResultEl); if ResultTypeInfo<>nil then + begin + AddExtRTTIVisibility; + Call.AddArg(ResultTypeInfo); + end; end; + if (ResultTypeInfo=nil) and ((Flags>0) or (length(Attr)>0)) then + begin + AddExtRTTIVisibility; + Call.AddArg(CreateLiteralNull(Proc)); + end; // flags if needed if (Flags>0) or (length(Attr)>0) then