diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index 3cb1dfe021..c1cedbdee4 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -15374,7 +15374,7 @@ var C: TClass; AssignSt: TJSSimpleAssignStatement; NeedInitFunction, HasConstructor, IsJSFunction, NeedClassExt, - SpecializeDelay: Boolean; + SpecializeDelay, NeedTypeInfo: Boolean; Proc: TPasProcedure; begin Result:=nil; @@ -15483,6 +15483,7 @@ begin end; NeedInitFunction:=true; + NeedTypeInfo:=(pcsfPublished in Scope.Flags) or HasTypeInfo(El,AContext); IntfKind:=''; if El.ObjKind=okInterface then begin @@ -15493,8 +15494,7 @@ begin else RaiseNotSupported(El,AContext,20180405093512); end; - NeedInitFunction:=(pcsfPublished in Scope.Flags) or HasTypeInfo(El,AContext) - or (IntfKind<>'') or (coShortRefGlobals in Options); + NeedInitFunction:=NeedTypeInfo or (IntfKind<>'') or (coShortRefGlobals in Options); end; if NeedInitFunction then @@ -15636,11 +15636,14 @@ begin AddClassSupportedInterfaces(El,Src,FuncContext); AddClassMessageIds(El,Src,FuncContext,pbivnMessageInt); AddClassMessageIds(El,Src,FuncContext,pbivnMessageStr); - // add RTTI init function - if SpecializeDelay then - AddClassRTTI(El,DelaySrc,DelayFuncContext) - else - AddClassRTTI(El,Src,FuncContext); + if NeedTypeInfo then + begin + // add RTTI init function + if SpecializeDelay then + AddClassRTTI(El,DelaySrc,DelayFuncContext) + else + AddClassRTTI(El,Src,FuncContext); + end; end; end;// end of init function diff --git a/packages/pastojs/src/pas2jscompiler.pp b/packages/pastojs/src/pas2jscompiler.pp index 12d4b7eb41..ef1a2754f8 100644 --- a/packages/pastojs/src/pas2jscompiler.pp +++ b/packages/pastojs/src/pas2jscompiler.pp @@ -3763,7 +3763,7 @@ begin 'enumnumbers': SetOption(coEnumValuesAsNumbers,Enable); 'removenotusedprivates': SetOption(coKeepNotUsedPrivates,not Enable); 'removenotuseddeclarations': SetOption(coKeepNotUsedDeclarationsWPO,not Enable); - 'shortrefglobals': SetOption(coShortRefGlobals,not Enable); + 'shortrefglobals': SetOption(coShortRefGlobals,Enable); else Log.LogMsgIgnoreFilter(nUnknownOptimizationOption,[QuoteStr(aValue)]); end; diff --git a/packages/pastojs/tests/tcprecompile.pas b/packages/pastojs/tests/tcprecompile.pas index 01c3027ae7..d81af82331 100644 --- a/packages/pastojs/tests/tcprecompile.pas +++ b/packages/pastojs/tests/tcprecompile.pas @@ -130,6 +130,7 @@ begin Params.AddStrings(SharedParams); if SecondRunParams<>nil then Params.AddStrings(SecondRunParams); + writeln('BBB1 TCustomTestCLI_Precompile.CheckPrecompile ',Params.Text); Compile([MainFile,'-FU'+UnitOutputDir],ExpExitCode); if ExpExitCode=0 then begin