Ver código fonte

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

Michael Van Canneyt 4 meses atrás
pai
commit
6d6564ba78
1 arquivos alterados com 11 adições e 0 exclusões
  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;