pastojs: shorten 1.0E12 to 1E12, issue #34942

git-svn-id: trunk@41078 -
This commit is contained in:
Mattias Gaertner 2019-01-26 21:18:50 +00:00
parent 2657006f78
commit 78ea6166e5
3 changed files with 51 additions and 6 deletions

View File

@ -813,6 +813,7 @@ begin
Delete(S,i,length(S))
else if (Exp>=-6) and (Exp<=6) then
begin
// small exponent -> use notation without E
Delete(S,i,length(S));
j:=Pos('.',S);
if j>0 then
@ -856,8 +857,11 @@ begin
end
else
begin
// e.g. 1.0E+001 -> 1.0E1
// e.g. 1.1E+0010 -> 1.1E10
S:=LeftStr(S,i)+IntToStr(Exp);
if (i >= 4) and (s[i-1] = '0') and (s[i-2] = '.') then
// e.g. 1.0E22 -> 1E22
Delete(S, i-2, 2);
end
end;
end;

View File

@ -888,6 +888,7 @@ type
Procedure TestClassHelper_Enumerator;
Procedure TestClassHelper_FromUnitInterface;
Procedure TestClassHelper_Constructor_NewInstance;
Procedure TestClassHelper_ReintroduceHides_CallFail;
Procedure TestClassHelper_DefaultProperty;
Procedure TestClassHelper_DefaultClassProperty;
Procedure TestClassHelper_MultipleScopeHelpers;
@ -899,7 +900,6 @@ type
Procedure TestTypeHelper_Enum;
Procedure TestTypeHelper_Enumerator;
Procedure TestTypeHelper_Constructor_NewInstance;
// Todo: warn hides method
// attributes
Procedure TestAttributes_Ignore;
@ -16265,6 +16265,27 @@ begin
end;
end;
procedure TTestResolver.TestClassHelper_ReintroduceHides_CallFail;
begin
StartProgram(false);
Add([
'type',
' TObject = class',
' constructor Create(o: tobject);',
' end;',
' TBird = class helper for TObject',
' constructor Create(i: longint); reintroduce;',
' end;',
'constructor tobject.Create(o: tobject); begin end;',
'constructor tbird.Create(i: longint); begin end;',
'var o: TObject;',
'begin',
' o:=TObject.Create(nil);',
'']);
CheckResolverException('Incompatible type arg no. 1: Got "Nil", expected "Longint"',
nIncompatibleTypeArgNo);
end;
procedure TTestResolver.TestClassHelper_DefaultProperty;
begin
StartProgram(false);

View File

@ -5858,6 +5858,15 @@ begin
' mindouble = -1.7e+308;',
' MinSafeIntDouble = -$10000000000000;',
' MaxSafeIntDouble = $fffffffffffff;',
' DZeroResolution = 1E-12;',
' Minus1 = -1E-12;',
' EPS = 1E-9;',
' DELTA = 0.001;',
' Big = 129.789E+100;',
' Test0_15 = 0.15;',
' Test999 = 2.9999999999999;',
' Test111999 = 211199999999999000.0;',
' TestMinus111999 = -211199999999999000.0;',
'var',
' d: double = b;',
'begin',
@ -5868,8 +5877,9 @@ begin
' d:=1.7E308;',
' d:=001.00E00;',
' d:=002.00E001;',
' d:=-003.00E-00;',
' d:=-004.00E-001;',
' d:=003.000E000;',
' d:=-004.00E-00;',
' d:=-005.00E-001;',
' d:=10**3;',
' d:=10 mod 3;',
' d:=10 div 3;',
@ -5914,6 +5924,15 @@ begin
'this.mindouble = -1.7e+308;',
'this.MinSafeIntDouble = -0x10000000000000;',
'this.MaxSafeIntDouble = 0xfffffffffffff;',
'this.DZeroResolution = 1E-12;',
'this.Minus1 = -1E-12;',
'this.EPS = 1E-9;',
'this.DELTA = 0.001;',
'this.Big = 129.789E+100;',
'this.Test0_15 = 0.15;',
'this.Test999 = 2.9999999999999;',
'this.Test111999 = 211199999999999000.0;',
'this.TestMinus111999 = -211199999999999000.0;',
'this.d = 4.4;'
]),
LinesToStr([
@ -5924,8 +5943,9 @@ begin
'$mod.d = 1.7E308;',
'$mod.d = 1.00E0;',
'$mod.d = 2.00E1;',
'$mod.d = -3.00E-0;',
'$mod.d = -4.00E-1;',
'$mod.d = 3.000E0;',
'$mod.d = -4.00E-0;',
'$mod.d = -5.00E-1;',
'$mod.d = Math.pow(10, 3);',
'$mod.d = 10 % 3;',
'$mod.d = Math.floor(10 / 3);',