mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 11:28:07 +02:00
pastojs: nicer for-loop srcmap
git-svn-id: trunk@37246 -
This commit is contained in:
parent
b2796c13b6
commit
f175619c7c
@ -10172,7 +10172,7 @@ begin
|
|||||||
ForSt:=TJSForStatement(CreateElement(TJSForStatement,El));
|
ForSt:=TJSForStatement(CreateElement(TJSForStatement,El));
|
||||||
List.B:=ForSt;
|
List.B:=ForSt;
|
||||||
// add "LoopVar=<StartExpr>;"
|
// add "LoopVar=<StartExpr>;"
|
||||||
SimpleAss:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,El.StartExpr));
|
SimpleAss:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,El.VariableName));
|
||||||
ForSt.Init:=SimpleAss;
|
ForSt.Init:=SimpleAss;
|
||||||
if AContext.Resolver<>nil then
|
if AContext.Resolver<>nil then
|
||||||
begin
|
begin
|
||||||
@ -10185,17 +10185,17 @@ begin
|
|||||||
SimpleAss.Expr:=ConvertElement(El.StartExpr,AContext);
|
SimpleAss.Expr:=ConvertElement(El.StartExpr,AContext);
|
||||||
// add "LoopVar<=$loopend"
|
// add "LoopVar<=$loopend"
|
||||||
if El.Down then
|
if El.Down then
|
||||||
BinExp:=TJSRelationalExpressionGE(CreateElement(TJSRelationalExpressionGE,El.EndExpr))
|
BinExp:=TJSRelationalExpressionGE(CreateElement(TJSRelationalExpressionGE,El.VariableName))
|
||||||
else
|
else
|
||||||
BinExp:=TJSRelationalExpressionLE(CreateElement(TJSRelationalExpressionLE,El.EndExpr));
|
BinExp:=TJSRelationalExpressionLE(CreateElement(TJSRelationalExpressionLE,El.VariableName));
|
||||||
ForSt.Cond:=BinExp;
|
ForSt.Cond:=BinExp;
|
||||||
BinExp.A:=ConvertElement(El.VariableName,AContext);
|
BinExp.A:=ConvertElement(El.VariableName,AContext);
|
||||||
BinExp.B:=CreateIdentifierExpr(CurLoopEndVarName,El.EndExpr,AContext);
|
BinExp.B:=CreateIdentifierExpr(CurLoopEndVarName,El.EndExpr,AContext);
|
||||||
// add "LoopVar++"
|
// add "LoopVar++"
|
||||||
if El.Down then
|
if El.Down then
|
||||||
Incr:=TJSUnaryPostMinusMinusExpression(CreateElement(TJSUnaryPostMinusMinusExpression,El))
|
Incr:=TJSUnaryPostMinusMinusExpression(CreateElement(TJSUnaryPostMinusMinusExpression,El.VariableName))
|
||||||
else
|
else
|
||||||
Incr:=TJSUnaryPostPlusPlusExpression(CreateElement(TJSUnaryPostPlusPlusExpression,El));
|
Incr:=TJSUnaryPostPlusPlusExpression(CreateElement(TJSUnaryPostPlusPlusExpression,El.VariableName));
|
||||||
ForSt.Incr:=Incr;
|
ForSt.Incr:=Incr;
|
||||||
Incr.A:=ConvertElement(El.VariableName,AContext);
|
Incr.A:=ConvertElement(El.VariableName,AContext);
|
||||||
// add body
|
// add body
|
||||||
@ -10210,17 +10210,17 @@ begin
|
|||||||
AddToStatementList(List,ListEnd,IfSt,El);
|
AddToStatementList(List,ListEnd,IfSt,El);
|
||||||
// add "LoopVar>$loopend"
|
// add "LoopVar>$loopend"
|
||||||
if El.Down then
|
if El.Down then
|
||||||
GTExpr:=TJSRelationalExpressionLT(CreateElement(TJSRelationalExpressionLT,El))
|
GTExpr:=TJSRelationalExpressionLT(CreateElement(TJSRelationalExpressionLT,El.VariableName))
|
||||||
else
|
else
|
||||||
GTExpr:=TJSRelationalExpressionGT(CreateElement(TJSRelationalExpressionGT,El));
|
GTExpr:=TJSRelationalExpressionGT(CreateElement(TJSRelationalExpressionGT,El.VariableName));
|
||||||
IfSt.Cond:=GTExpr;
|
IfSt.Cond:=GTExpr;
|
||||||
GTExpr.A:=ConvertElement(El.VariableName,AContext);
|
GTExpr.A:=ConvertElement(El.VariableName,AContext);
|
||||||
GTExpr.B:=CreateIdentifierExpr(CurLoopEndVarName,El.EndExpr,AContext);
|
GTExpr.B:=CreateIdentifierExpr(CurLoopEndVarName,El.EndExpr,AContext);
|
||||||
// add "LoopVar--"
|
// add "LoopVar--"
|
||||||
if El.Down then
|
if El.Down then
|
||||||
Decr:=TJSUnaryPostPlusPlusExpression(CreateElement(TJSUnaryPostPlusPlusExpression,El))
|
Decr:=TJSUnaryPostPlusPlusExpression(CreateElement(TJSUnaryPostPlusPlusExpression,El.VariableName))
|
||||||
else
|
else
|
||||||
Decr:=TJSUnaryPostMinusMinusExpression(CreateElement(TJSUnaryPostMinusMinusExpression,El));
|
Decr:=TJSUnaryPostMinusMinusExpression(CreateElement(TJSUnaryPostMinusMinusExpression,El.VariableName));
|
||||||
IfSt.BTrue:=Decr;
|
IfSt.BTrue:=Decr;
|
||||||
Decr.A:=ConvertElement(El.VariableName,AContext);
|
Decr.A:=ConvertElement(El.VariableName,AContext);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user