Browse Source

pastojs: do not add rtti for public constructor for class without rtti, related #37752

mattias 1 year ago
parent
commit
985dec61b1
1 changed files with 9 additions and 1 deletions
  1. 9 1
      packages/pastojs/src/fppas2js.pp

+ 9 - 1
packages/pastojs/src/fppas2js.pp

@@ -21240,7 +21240,15 @@ begin
       // check visibility
       case mt of
       mtClass:
-        if (P.Visibility<>visPublished) and (not P.InheritsFrom(TPasConstructor) or (P.Visibility <> visPublic)) then continue;
+        if (P.Visibility=visPublished) then
+          // published member
+        else if (P is TPasConstructor) and (P.Visibility = visPublic)
+            and (pcsfPublished in TPas2JSClassScope(El.CustomData).Flags) then
+          // this class supports published members -> add public constructor to RTTI
+          // workaround til extended RTTI
+          // see issue #37752
+        else
+          continue;
       mtInterface: ; // all members of an interface are published
       mtRecord:
         // a published record publishes all non private members