From c32ef4af38c7202020988a32551a59203b99a639 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Wed, 20 Jan 2021 21:22:07 +0000 Subject: [PATCH] pastojs: ord(integer) git-svn-id: trunk@48237 - --- packages/pastojs/src/fppas2js.pp | 9 +++++++++ packages/pastojs/tests/tcmodules.pas | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index e4335a6242..f60b74be61 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -13399,6 +13399,15 @@ begin Result:=Add; exit; end + else if bt in btAllJSInteger then + begin + // ord(integer) + Result:=CheckOrdConstant(aResolver,Param); + if Result<>nil then exit; + // ord(integer) -> integer + Result:=ConvertExpression(Param,AContext); + exit; + end else if bt=btContext then begin C:=ParamResolved.LoTypeEl.ClassType; diff --git a/packages/pastojs/tests/tcmodules.pas b/packages/pastojs/tests/tcmodules.pas index 736bc78c93..7f68df6b22 100644 --- a/packages/pastojs/tests/tcmodules.pas +++ b/packages/pastojs/tests/tcmodules.pas @@ -7182,7 +7182,9 @@ begin 'begin', ' i:=i2;', ' i:=default(TMyInt);', - ' if i=i2 then ;']); + ' if i=i2 then ;', + ' i:=ord(i2);', + '']); ConvertProgram; CheckSource('TestIntegerRange', LinesToStr([ @@ -7203,6 +7205,7 @@ begin '$mod.i = $mod.i2;', '$mod.i = -1;', 'if ($mod.i === $mod.i2) ;', + '$mod.i = $mod.i2;', ''])); end; @@ -7317,6 +7320,7 @@ begin ' i:=system.high(i);', ' i:=system.pred(i);', ' i:=system.succ(i);', + ' i:=system.ord(i);', '']); ConvertProgram; CheckResolverUnexpectedHints; @@ -7333,6 +7337,7 @@ begin '$mod.i = 255;', '$mod.i = $mod.i - 1;', '$mod.i = $mod.i + 1;', + '$mod.i = $mod.i;', ''])); end;