Browse Source

* Ensure exceptions referenced in rtl.js are not optimized away

Michael Van Canneyt 4 months ago
parent
commit
6d6564ba78
1 changed files with 11 additions and 0 deletions
  1. 11 0
      packages/rtl/src/sysutils.pas

+ 11 - 0
packages/rtl/src/sysutils.pas

@@ -8936,8 +8936,19 @@ begin
     Result:=GetLocalTimeOffset();
 end;
 
+type
+  TExceptionClass = class of exception;
+
+procedure DoClassRef(C : TExceptionClass);
+begin
+  if C=Nil then;
+end;
 
 initialization
+  // Artificially create a reference to classes referenced in rtl.js so they do not get wrongly removed by the optimizer
+  DoClassRef(EInvalidCast);
+  DoClassRef(EAbstractError);
+  DoClassRef(ERangeError);
   ShortMonthNames:=DefaultShortMonthNames;
   LongMonthNames:=DefaultLongMonthNames;
   ShortDayNames:=DefaultShortDayNames;