diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index 38dadf9f89..74862c1689 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -1090,7 +1090,8 @@ const msNestedComment, msExternalClass, msArrayOperators, - msIgnoreAttributes]; + msIgnoreAttributes, + msOmitRTTI]; msAllPas2jsBoolSwitchesReadOnly = [ bsLongStrings diff --git a/packages/pastojs/src/pas2jsfiler.pp b/packages/pastojs/src/pas2jsfiler.pp index 6ac4fe26b2..4ac8b0e075 100644 --- a/packages/pastojs/src/pas2jsfiler.pp +++ b/packages/pastojs/src/pas2jsfiler.pp @@ -167,7 +167,8 @@ const 'ArrayOperators', 'ExternalClass', 'PrefixedAttributes', - 'IgnoreAttributes' + 'IgnoreAttributes', + 'OmitRTTI' ); PCUDefaultBoolSwitches: TBoolSwitches = [ diff --git a/packages/pastojs/tests/tcmodules.pas b/packages/pastojs/tests/tcmodules.pas index 4d1acc6ba6..883438c1dd 100644 --- a/packages/pastojs/tests/tcmodules.pas +++ b/packages/pastojs/tests/tcmodules.pas @@ -678,6 +678,7 @@ type Procedure TestRTTI_Class_Property; Procedure TestRTTI_Class_PropertyParams; Procedure TestRTTI_Class_OtherUnit_TypeAlias; + Procedure TestRTTI_Class_OmitRTTI; Procedure TestRTTI_IndexModifier; Procedure TestRTTI_StoredModifier; Procedure TestRTTI_DefaultValue; @@ -20594,6 +20595,35 @@ begin ''])); end; +procedure TTestModule.TestRTTI_Class_OmitRTTI; +begin + Converter.Options:=Converter.Options-[coNoTypeInfo]; + StartProgram(false); + Add([ + '{$modeswitch omitrtti}', + 'type', + ' TObject = class', + ' private', + ' FA: byte;', + ' published', + ' property A: byte read FA write FA;', + ' end;', + 'begin']); + ConvertProgram; + CheckSource('TestRTTI_Class_OmitRTTI', + LinesToStr([ // statements + 'rtl.createClass($mod, "TObject", null, function () {', + ' this.$init = function () {', + ' this.FA = 0;', + ' };', + ' this.$final = function () {', + ' };', + '});', + '']), + LinesToStr([ // $mod.$main + ''])); +end; + procedure TTestModule.TestRTTI_IndexModifier; begin Converter.Options:=Converter.Options-[coNoTypeInfo]; @@ -21339,15 +21369,16 @@ procedure TTestModule.TestRTTI_LocalTypes; begin Converter.Options:=Converter.Options-[coNoTypeInfo]; StartProgram(false); - Add('procedure DoIt;'); - Add('type'); - Add(' integer = longint;'); - Add(' TPoint = record'); - Add(' x,y: integer;'); - Add(' end;'); - Add('begin'); - Add('end;'); - Add('begin'); + Add([ + 'procedure DoIt;', + 'type', + ' integer = longint;', + ' TPoint = record', + ' x,y: integer;', + ' end;', + 'begin', + 'end;', + 'begin']); ConvertProgram; CheckSource('TestRTTI_LocalTypes', LinesToStr([ // statements