anchor.diff:    private
       type
         // Error codes to be used when calling the private static BigDecimal.Error method.
  -      TErrorCode = (ecParse, ecDivByZero, ecConversion, ecOverflow, ecUnderflow, ecInvalidArg, ecRounding);
  +      TErrorCode = (ecParse, ecDivByZero, ecConversion, ecOverflow, ecUnderflow, ecInvalidArg, ecRounding, ecExponent);
   
       var
         // The unscaled value of the BigDecimal.
  
positive.code: class function BigDecimal.IntPower(const Base: BigDecimal; Exponent, Precision: Integer): BigDecimal;
  var
    LBase: BigDecimal;
  begin
    if (Base.Precision > 8) and (Exponent >= IntPowerExponentThreshold) then
    begin
      Result := One;
  
negative.code:   SInvalidArgument        = 'Invalid argument %s';
    SRounding               = 'Rounding necessary';
    SInvalidOperation       = 'Invalid BigDecimal operation';
    SExponent               = 'Exponent to IntPower outside the allowed range';
  
  var
    PowersOfTen: TArray<BigInteger>;
  