mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 05:00:07 +02:00
fcl-js: no brackets in var-comma
git-svn-id: trunk@37578 -
This commit is contained in:
parent
eb7059cea8
commit
2a57480fff
@ -993,7 +993,12 @@ begin
|
||||
AllowCompact:=TJSBinaryExpression(El).AllowCompact;
|
||||
end;
|
||||
If Not (AllowCompact and (woCompact in Options)) then
|
||||
S:=' '+S+' ';
|
||||
begin
|
||||
if El is TJSCommaExpression then
|
||||
S:=S+' '
|
||||
else
|
||||
S:=' '+S+' ';
|
||||
end;
|
||||
Write(S);
|
||||
WriteJS(El.B);
|
||||
Writer.CurElement:=El;
|
||||
@ -1449,6 +1454,7 @@ procedure TJSWriter.WriteVariableStatement(El: TJSVariableStatement);
|
||||
|
||||
begin
|
||||
Write('var ');
|
||||
FSkipRoundBrackets:=true;
|
||||
WriteJS(El.A);
|
||||
end;
|
||||
|
||||
|
@ -134,6 +134,7 @@ type
|
||||
Procedure TestForStatementFull;
|
||||
Procedure TestForStatementFull1;
|
||||
Procedure TestForStatementCompact;
|
||||
Procedure TestForStatement2loops2inits;
|
||||
Procedure TestForInStatement;
|
||||
Procedure TestWhileStatement;
|
||||
Procedure TestDoWhileStatement;
|
||||
@ -751,7 +752,7 @@ end;
|
||||
TTestStatementWriter
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignment(Const Msg: String;
|
||||
procedure TTestStatementWriter.TestAssignment(const Msg: String;
|
||||
AClass: TJSAssignStatementClass; Result: String; ACompact: Boolean);
|
||||
Var
|
||||
U : TJSAssignStatement;
|
||||
@ -762,7 +763,7 @@ begin
|
||||
AssertWrite(Msg,Result,U);
|
||||
end;
|
||||
|
||||
Function TTestStatementWriter.CreateAssignment(AClass: TJSAssignStatementClass
|
||||
function TTestStatementWriter.CreateAssignment(AClass: TJSAssignStatementClass
|
||||
): TJSAssignStatement;
|
||||
begin
|
||||
if AClass=Nil then
|
||||
@ -785,37 +786,37 @@ begin
|
||||
Result.B:=CreateAssignment(nil);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyStatement;
|
||||
procedure TTestStatementWriter.TestEmptyStatement;
|
||||
|
||||
begin
|
||||
AssertWrite('Empty statement','',TJSEmptyStatement.Create(0,0));
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyStatementComment;
|
||||
procedure TTestStatementWriter.TestEmptyStatementComment;
|
||||
begin
|
||||
Writer.Options:=[woEmptyStatementAsComment,woUseUTF8];
|
||||
AssertWrite('Empty statement as comment','/* Empty statement */',TJSEmptyStatement.Create(0,0));
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyStatementBlock;
|
||||
procedure TTestStatementWriter.TestEmptyStatementBlock;
|
||||
begin
|
||||
AssertWrite('Empty statement block','{'+sLineBreak+'}',TJSEmptyBlockStatement.Create(0,0));
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyStatementBlockIndent;
|
||||
procedure TTestStatementWriter.TestEmptyStatementBlockIndent;
|
||||
begin
|
||||
Writer.IndentSize:=2;
|
||||
Writer.Indent;
|
||||
AssertWrite('Empty statement block',' {'+sLineBreak+' }',TJSEmptyBlockStatement.Create(0,0));
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyStatementBlockCompact;
|
||||
procedure TTestStatementWriter.TestEmptyStatementBlockCompact;
|
||||
begin
|
||||
Writer.Options:=[woCompact,woUseUTF8];
|
||||
AssertWrite('Empty statement block','{}',TJSEmptyBlockStatement.Create(0,0));
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarDeclaration;
|
||||
procedure TTestStatementWriter.TestVarDeclaration;
|
||||
|
||||
Var
|
||||
V : TJSVarDeclaration;
|
||||
@ -825,7 +826,7 @@ begin
|
||||
AssertWrite('simple var','a',V);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarDeclarationInit;
|
||||
procedure TTestStatementWriter.TestVarDeclarationInit;
|
||||
Var
|
||||
V : TJSVarDeclaration;
|
||||
begin
|
||||
@ -835,7 +836,7 @@ begin
|
||||
AssertWrite('simple var, init ','a = 1',V);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarListDeclaration;
|
||||
procedure TTestStatementWriter.TestVarListDeclaration;
|
||||
Var
|
||||
B,L : TJSVariableDeclarationList;
|
||||
V : TJSVarDeclaration;
|
||||
@ -854,7 +855,7 @@ begin
|
||||
AssertWrite('simple var list ','a, b = 1',L);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarListDeclarationInit;
|
||||
procedure TTestStatementWriter.TestVarListDeclarationInit;
|
||||
Var
|
||||
B,L : TJSVariableDeclarationList;
|
||||
V : TJSVarDeclaration;
|
||||
@ -873,7 +874,7 @@ begin
|
||||
AssertWrite('simple var list ','a, b',L);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarDeclarationStatement;
|
||||
procedure TTestStatementWriter.TestVarDeclarationStatement;
|
||||
|
||||
Var
|
||||
S : TJSVariableStatement;
|
||||
@ -886,7 +887,7 @@ begin
|
||||
AssertWrite('simple var','var a',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarListDeclarationStatement;
|
||||
procedure TTestStatementWriter.TestVarListDeclarationStatement;
|
||||
|
||||
Var
|
||||
S : TJSVariableStatement;
|
||||
@ -903,7 +904,7 @@ begin
|
||||
AssertWrite('simple var','var a',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestVarListDeclarationStatement2Vars;
|
||||
procedure TTestStatementWriter.TestVarListDeclarationStatement2Vars;
|
||||
Var
|
||||
S : TJSVariableStatement;
|
||||
V : TJSVarDeclaration;
|
||||
@ -924,7 +925,7 @@ begin
|
||||
AssertWrite('simple 2 vars','var a, b',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestReturnStatement;
|
||||
procedure TTestStatementWriter.TestReturnStatement;
|
||||
Var
|
||||
S : TJSReturnStatement;
|
||||
|
||||
@ -934,7 +935,7 @@ begin
|
||||
AssertWrite('simple return','return a',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestLabeledStatement;
|
||||
procedure TTestStatementWriter.TestLabeledStatement;
|
||||
Var
|
||||
LS : TJSLabeledStatement;
|
||||
S : TJSReturnStatement;
|
||||
@ -949,7 +950,7 @@ begin
|
||||
AssertWrite('simple return','loc:'+sLineBreak+'return a',LS);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestLabeledStatementCompact;
|
||||
procedure TTestStatementWriter.TestLabeledStatementCompact;
|
||||
Var
|
||||
LS : TJSLabeledStatement;
|
||||
S : TJSReturnStatement;
|
||||
@ -965,7 +966,7 @@ begin
|
||||
AssertWrite('simple return','loc: return a',LS);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestContinueStatement;
|
||||
procedure TTestStatementWriter.TestContinueStatement;
|
||||
|
||||
Var
|
||||
S : TJSContinueStatement;
|
||||
@ -975,7 +976,7 @@ begin
|
||||
AssertWrite('simple continue','continue',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestContinueTargetStatement;
|
||||
procedure TTestStatementWriter.TestContinueTargetStatement;
|
||||
|
||||
Var
|
||||
S : TJSContinueStatement;
|
||||
@ -986,7 +987,7 @@ begin
|
||||
AssertWrite('continue a','continue a',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestBreakStatement;
|
||||
procedure TTestStatementWriter.TestBreakStatement;
|
||||
|
||||
Var
|
||||
S : TJSBreakStatement;
|
||||
@ -996,7 +997,7 @@ begin
|
||||
AssertWrite('simple break','break',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestBreakTargetStatement;
|
||||
procedure TTestStatementWriter.TestBreakTargetStatement;
|
||||
Var
|
||||
S : TJSBreakStatement;
|
||||
|
||||
@ -1006,127 +1007,127 @@ begin
|
||||
AssertWrite('simple break a','break a',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementSimple;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementSimple;
|
||||
begin
|
||||
TestAssignment('Simple assignment',TJSSimpleAssignStatement,'a = b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementSimpleCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementSimpleCompact;
|
||||
begin
|
||||
TestAssignment('Simple assignment',TJSSimpleAssignStatement,'a=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementAdd;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementAdd;
|
||||
begin
|
||||
TestAssignment('Add assignment',TJSAddEqAssignStatement,'a += b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementAddCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementAddCompact;
|
||||
begin
|
||||
TestAssignment('Add assignment',TJSAddEqAssignStatement,'a+=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementSubtract;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementSubtract;
|
||||
begin
|
||||
TestAssignment('Subtract assignment',TJSSubEqAssignStatement,'a -= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementSubtractCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementSubtractCompact;
|
||||
begin
|
||||
TestAssignment('Subtract assignment',TJSSubEqAssignStatement,'a-=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementMultiply;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementMultiply;
|
||||
begin
|
||||
TestAssignment('Multiply assignment',TJSMulEqAssignStatement,'a *= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementMultiplyCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementMultiplyCompact;
|
||||
begin
|
||||
TestAssignment('Multiply assignment',TJSMulEqAssignStatement,'a*=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementDivide;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementDivide;
|
||||
begin
|
||||
TestAssignment('Divide assignment',TJSDivEqAssignStatement,'a /= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementDivideCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementDivideCompact;
|
||||
begin
|
||||
TestAssignment('Divide assignment',TJSDivEqAssignStatement,'a/=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementShift;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementShift;
|
||||
begin
|
||||
TestAssignment('Shift assignment',TJSLShiftEqAssignStatement,'a <<= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementShiftCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementShiftCompact;
|
||||
begin
|
||||
TestAssignment('Shift assignment',TJSLShiftEqAssignStatement,'a<<=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementRShift;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementRShift;
|
||||
begin
|
||||
TestAssignment('RShift assignment',TJSRShiftEqAssignStatement,'a >>= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementRShiftCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementRShiftCompact;
|
||||
begin
|
||||
TestAssignment('RShift assignment',TJSRShiftEqAssignStatement,'a>>=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementURShift;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementURShift;
|
||||
begin
|
||||
TestAssignment('URShift assignment',TJSURShiftEqAssignStatement,'a >>>= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementURShiftCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementURShiftCompact;
|
||||
begin
|
||||
TestAssignment('URShift assignment',TJSURShiftEqAssignStatement,'a>>>=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementMod;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementMod;
|
||||
begin
|
||||
TestAssignment('Mod assignment',TJSModEqAssignStatement,'a %= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementModCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementModCompact;
|
||||
begin
|
||||
TestAssignment('Mod assignment',TJSModEqAssignStatement,'a%=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryOr;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryOr;
|
||||
begin
|
||||
TestAssignment('Binary or assignment',TJSOrEqAssignStatement,'a |= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryOrCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryOrCompact;
|
||||
begin
|
||||
TestAssignment('Binary or assignment',TJSOrEqAssignStatement,'a |= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryXOr;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryXOr;
|
||||
begin
|
||||
TestAssignment('Binary xor assignment',TJSXOrEqAssignStatement,'a ^= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryXOrCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryXOrCompact;
|
||||
begin
|
||||
TestAssignment('Binary xor assignment',TJSXOrEqAssignStatement,'a^=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryAnd;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryAnd;
|
||||
begin
|
||||
TestAssignment('Binary and assignment',TJSAndEqAssignStatement,'a &= b',False);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestAssignmentStatementBinaryAndCompact;
|
||||
procedure TTestStatementWriter.TestAssignmentStatementBinaryAndCompact;
|
||||
begin
|
||||
TestAssignment('Binary and assignment',TJSAndEqAssignStatement,'a&=b',True);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestForStatementEmpty;
|
||||
procedure TTestStatementWriter.TestForStatementEmpty;
|
||||
|
||||
Var
|
||||
S : TJSForStatement;
|
||||
@ -1136,7 +1137,7 @@ begin
|
||||
AssertWrite('neverending for','for (; ; ) {'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestForStatementFull;
|
||||
procedure TTestStatementWriter.TestForStatementFull;
|
||||
|
||||
Var
|
||||
S : TJSForStatement;
|
||||
@ -1189,7 +1190,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestForStatementCompact;
|
||||
procedure TTestStatementWriter.TestForStatementCompact;
|
||||
Var
|
||||
S : TJSForStatement;
|
||||
UPP : TJSUnaryPostPlusPlusExpression;
|
||||
@ -1214,7 +1215,72 @@ begin
|
||||
AssertWrite('for i:=0 to 9','for (i=0; i<10; i++) {}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestForInStatement;
|
||||
procedure TTestStatementWriter.TestForStatement2loops2inits;
|
||||
var
|
||||
L: TJSStatementList;
|
||||
|
||||
function CreateIdent(aName: string): TJSPrimaryExpressionIdent;
|
||||
begin
|
||||
Result:=TJSPrimaryExpressionIdent.Create(0,0);
|
||||
Result.Name:=TJSString(aName);
|
||||
end;
|
||||
|
||||
function CreateNumber(i: TJSNumber): TJSLiteral;
|
||||
begin
|
||||
Result:=TJSLiteral.Create(0,0);
|
||||
Result.Value.AsNumber:=i;
|
||||
end;
|
||||
|
||||
function CreateAssignSt(LHS, Expr: TJSElement): TJSSimpleAssignStatement;
|
||||
begin
|
||||
Result:=TJSSimpleAssignStatement.Create(0,0);
|
||||
Result.LHS:=LHS;
|
||||
Result.Expr:=Expr;
|
||||
end;
|
||||
|
||||
function CreateFor(LoopVar, LoopEndVar: string; StartExpr, EndExpr: TJSElement;
|
||||
Up: boolean; Target: string): TJSForStatement;
|
||||
var
|
||||
V: TJSVariableStatement;
|
||||
C: TJSCommaExpression;
|
||||
begin
|
||||
Result:=TJSForStatement.Create(0,0);
|
||||
V:=TJSVariableStatement.Create(0,0);
|
||||
Result.Init:=V;
|
||||
C:=TJSCommaExpression.Create(0,0);
|
||||
V.A:=C;
|
||||
C.A:=CreateAssignSt(CreateIdent(LoopVar),StartExpr);
|
||||
C.B:=CreateAssignSt(CreateIdent(LoopEndVar),EndExpr);
|
||||
|
||||
if Up then
|
||||
Result.Cond:=TJSRelationalExpressionLE.Create(0,0)
|
||||
else
|
||||
Result.Cond:=TJSRelationalExpressionGE.Create(0,0);
|
||||
TJSRelationalExpression(Result.Cond).A:=CreateIdent(LoopVar);
|
||||
TJSRelationalExpression(Result.Cond).B:=CreateIdent(LoopEndVar);
|
||||
|
||||
if Up then
|
||||
Result.Incr:=TJSUnaryPostPlusPlusExpression.Create(0,0)
|
||||
else
|
||||
Result.Incr:=TJSUnaryPostMinusMinusExpression.Create(0,0);
|
||||
TJSUnaryExpression(Result.Incr).A:=CreateIdent(LoopVar);
|
||||
|
||||
Result.Body:=CreateAssignSt(CreateIdent(Target),CreateIdent(LoopVar));
|
||||
end;
|
||||
|
||||
begin
|
||||
L:=TJSStatementList.Create(0,0);
|
||||
L.A:=CreateFor('$loop1','$loopend2',CreateNumber(3),CreateNumber(5),true,'$mod.i');
|
||||
L.B:=CreateFor('$loop3','$loopend4',CreateNumber(10),CreateNumber(7),false,'$mod.i');
|
||||
AssertWrite('for i:=3 to 5 do ; for i:=10 downto 7 do ;',
|
||||
'{'+LineEnding
|
||||
+'for (var $loop1 = 3, $loopend2 = 5; $loop1 <= $loopend2; $loop1++) $mod.i = $loop1;'+LineEnding
|
||||
+'for (var $loop3 = 10, $loopend4 = 7; $loop3 >= $loopend4; $loop3--) $mod.i = $loop3;'+LineEnding
|
||||
+'}'
|
||||
,L);
|
||||
end;
|
||||
|
||||
procedure TTestStatementWriter.TestForInStatement;
|
||||
|
||||
Var
|
||||
S : TJSForInStatement;
|
||||
@ -1227,7 +1293,7 @@ begin
|
||||
AssertWrite('for a in b','for (a in b) {'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestWhileStatement;
|
||||
procedure TTestStatementWriter.TestWhileStatement;
|
||||
Var
|
||||
S : TJSWhileStatement;
|
||||
|
||||
@ -1238,7 +1304,7 @@ begin
|
||||
AssertWrite('while a ','while (a) {'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestDoWhileStatement;
|
||||
procedure TTestStatementWriter.TestDoWhileStatement;
|
||||
|
||||
Var
|
||||
S : TJSDoWhileStatement;
|
||||
@ -1250,7 +1316,7 @@ begin
|
||||
AssertWrite('do while a ','do {'+sLineBreak+'} while (a)',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementEmpty;
|
||||
procedure TTestStatementWriter.TestSwitchStatementEmpty;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
|
||||
@ -1260,7 +1326,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementEmptyCompact;
|
||||
procedure TTestStatementWriter.TestSwitchStatementEmptyCompact;
|
||||
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
@ -1272,7 +1338,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementOneElement;
|
||||
procedure TTestStatementWriter.TestSwitchStatementOneElement;
|
||||
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
@ -1287,7 +1353,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {'+sLineBreak+'case c:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementOneElementCompact;
|
||||
procedure TTestStatementWriter.TestSwitchStatementOneElementCompact;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1301,7 +1367,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {case c: {}}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElements;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElements;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1318,7 +1384,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {'+sLineBreak+'case c:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'case d:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElementsCompact;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElementsCompact;
|
||||
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
@ -1336,7 +1402,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {case c: {} case d: {}}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElementsDefault;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElementsDefault;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1355,7 +1421,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {'+sLineBreak+'case c:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'case d:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'default:'+sLineBreak+'{'+sLineBreak+'}'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElementsDefaultCompact;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElementsDefaultCompact;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1375,7 +1441,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {case c: {} case d: {} default: {}}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElementsOneEmpty;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElementsOneEmpty;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1402,7 +1468,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSwitchStatementTwoElementsOneEmptyCompact;
|
||||
procedure TTestStatementWriter.TestSwitchStatementTwoElementsOneEmptyCompact;
|
||||
Var
|
||||
S : TJSSwitchStatement;
|
||||
C : TJSCaseElement;
|
||||
@ -1421,7 +1487,7 @@ begin
|
||||
AssertWrite('switch ','switch (a) {case c: case d: {} default: {}}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestIfThen;
|
||||
procedure TTestStatementWriter.TestIfThen;
|
||||
Var
|
||||
S : TJSIfStatement;
|
||||
|
||||
@ -1433,7 +1499,7 @@ begin
|
||||
AssertWrite('if then','if (a) {'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestIfThenElse;
|
||||
procedure TTestStatementWriter.TestIfThenElse;
|
||||
Var
|
||||
S : TJSIfStatement;
|
||||
|
||||
@ -1449,7 +1515,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListEmpty;
|
||||
procedure TTestStatementWriter.TestStatementListEmpty;
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
|
||||
@ -1459,7 +1525,7 @@ begin
|
||||
AssertWrite('Statement list','{'+sLineBreak+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListEmptyCompact;
|
||||
procedure TTestStatementWriter.TestStatementListEmptyCompact;
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
|
||||
@ -1469,7 +1535,7 @@ begin
|
||||
AssertWrite('Statement list','{}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListOneStatement;
|
||||
procedure TTestStatementWriter.TestStatementListOneStatement;
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
begin
|
||||
@ -1482,7 +1548,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListOneStatementCompact;
|
||||
procedure TTestStatementWriter.TestStatementListOneStatementCompact;
|
||||
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
@ -1494,7 +1560,7 @@ begin
|
||||
AssertWrite('Statement list','{a=b}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListTwoStatements;
|
||||
procedure TTestStatementWriter.TestStatementListTwoStatements;
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
|
||||
@ -1510,7 +1576,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestStatementListTwoStatementsCompact;
|
||||
procedure TTestStatementWriter.TestStatementListTwoStatementsCompact;
|
||||
Var
|
||||
S : TJSStatementList;
|
||||
|
||||
@ -1537,7 +1603,7 @@ begin
|
||||
+'}',S);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyFunctionDef;
|
||||
procedure TTestStatementWriter.TestEmptyFunctionDef;
|
||||
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
@ -1551,7 +1617,7 @@ begin
|
||||
+'}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestEmptyFunctionDefCompact;
|
||||
procedure TTestStatementWriter.TestEmptyFunctionDefCompact;
|
||||
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
@ -1564,7 +1630,7 @@ begin
|
||||
AssertWrite('Empty function, compact','function a() {}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefParams;
|
||||
procedure TTestStatementWriter.TestFunctionDefParams;
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
|
||||
@ -1582,7 +1648,7 @@ begin
|
||||
+'}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefParamsCompact;
|
||||
procedure TTestStatementWriter.TestFunctionDefParamsCompact;
|
||||
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
@ -1598,7 +1664,7 @@ begin
|
||||
AssertWrite('Empty function, 3 params, compact','function a(b,c,d) {}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefBody1;
|
||||
procedure TTestStatementWriter.TestFunctionDefBody1;
|
||||
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
@ -1620,7 +1686,7 @@ begin
|
||||
+'}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefBody1Compact;
|
||||
procedure TTestStatementWriter.TestFunctionDefBody1Compact;
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
R : TJSReturnStatement;
|
||||
@ -1638,7 +1704,7 @@ begin
|
||||
AssertWrite('1 statement, compact','function a() {return 0; }',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefBody2;
|
||||
procedure TTestStatementWriter.TestFunctionDefBody2;
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
R : TJSReturnStatement;
|
||||
@ -1673,7 +1739,7 @@ begin
|
||||
+'}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestFunctionDefBody2Compact;
|
||||
procedure TTestStatementWriter.TestFunctionDefBody2Compact;
|
||||
Var
|
||||
FD : TJSFunctionDeclarationStatement;
|
||||
R : TJSReturnStatement;
|
||||
@ -1704,7 +1770,7 @@ begin
|
||||
AssertWrite('Function, 2 statements, compact','function a(b) {b=b*10; return b}',FD);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryCatch;
|
||||
procedure TTestStatementWriter.TestTryCatch;
|
||||
|
||||
Var
|
||||
T : TJSTryCatchStatement;
|
||||
@ -1734,7 +1800,7 @@ begin
|
||||
+'}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryCatchCompact;
|
||||
procedure TTestStatementWriter.TestTryCatchCompact;
|
||||
Var
|
||||
T : TJSTryCatchStatement;
|
||||
A : TJSAssignStatement;
|
||||
@ -1759,7 +1825,7 @@ begin
|
||||
AssertWrite('Try catch compact','try {b=b*10} catch (e) {b=1}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryFinally;
|
||||
procedure TTestStatementWriter.TestTryFinally;
|
||||
|
||||
Var
|
||||
T : TJSTryFinallyStatement;
|
||||
@ -1789,7 +1855,7 @@ begin
|
||||
+'}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryFinallyCompact;
|
||||
procedure TTestStatementWriter.TestTryFinallyCompact;
|
||||
|
||||
Var
|
||||
T : TJSTryFinallyStatement;
|
||||
@ -1815,7 +1881,7 @@ begin
|
||||
AssertWrite('Try finally compact','try {b=b*10} finally {b=1}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryCatchFinally;
|
||||
procedure TTestStatementWriter.TestTryCatchFinally;
|
||||
Var
|
||||
T : TJSTryCatchFinallyStatement;
|
||||
A : TJSAssignStatement;
|
||||
@ -1849,7 +1915,7 @@ begin
|
||||
+' b = 1'+sLineBreak+'}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestTryCatchFinallyCompact;
|
||||
procedure TTestStatementWriter.TestTryCatchFinallyCompact;
|
||||
Var
|
||||
T : TJSTryCatchFinallyStatement;
|
||||
A : TJSAssignStatement;
|
||||
@ -1878,7 +1944,7 @@ begin
|
||||
AssertWrite('Try finally ','try {b=b*10} catch (e) {b=10} finally {b=1}',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestWith;
|
||||
procedure TTestStatementWriter.TestWith;
|
||||
Var
|
||||
T : TJSWithStatement;
|
||||
A : TJSAssignStatement;
|
||||
@ -1899,7 +1965,7 @@ begin
|
||||
AssertWrite('With statement ','with (e)'+slineBreak+' b = b * 10',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestWithCompact;
|
||||
procedure TTestStatementWriter.TestWithCompact;
|
||||
Var
|
||||
T : TJSWithStatement;
|
||||
A : TJSAssignStatement;
|
||||
@ -1920,7 +1986,7 @@ begin
|
||||
AssertWrite('With statement ','with (e) b=b*10',T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSourceElements;
|
||||
procedure TTestStatementWriter.TestSourceElements;
|
||||
Var
|
||||
T : TJSSourceElements;
|
||||
A : TJSAssignStatement;
|
||||
@ -1947,7 +2013,7 @@ begin
|
||||
AssertWrite('Statement lists ','b = b * 10;'+sLineBreak+'c = c * 2;'+sLineBreak,T);
|
||||
end;
|
||||
|
||||
Procedure TTestStatementWriter.TestSourceElementsCompact;
|
||||
procedure TTestStatementWriter.TestSourceElementsCompact;
|
||||
Var
|
||||
T : TJSSourceElements;
|
||||
A : TJSAssignStatement;
|
||||
@ -2466,18 +2532,36 @@ Procedure TTestJSWriter.AssertResult(Const Msg, Result: String);
|
||||
|
||||
Var
|
||||
S : AnsiString;
|
||||
p: Integer;
|
||||
begin
|
||||
S:=FTextWriter.AsAnsistring;
|
||||
AssertEquals(Msg,Result,S);
|
||||
if S=Result then exit;
|
||||
p:=1;
|
||||
while (p<=length(S)) and (p<=length(Result)) and (S[p]=Result[p]) do inc(p);
|
||||
if p>length(S) then
|
||||
AssertEquals(Msg+' (actual too short)',Result,S)
|
||||
else if p>length(Result) then
|
||||
AssertEquals(Msg+' (actual too long)',Result,S)
|
||||
else
|
||||
AssertEquals(Msg+' (diff at '+IntToStr(p)+' "'+S[p]+'")',Result,S);
|
||||
end;
|
||||
|
||||
Procedure TTestJSWriter.AssertResult(Const Msg: string; Result: UnicodeString);
|
||||
|
||||
Var
|
||||
S : UnicodeString;
|
||||
p: Integer;
|
||||
begin
|
||||
S:=FTextWriter.AsUnicodeString;
|
||||
AssertEquals(Msg,String(Result),String(S));
|
||||
if S=Result then exit;
|
||||
p:=1;
|
||||
while (p<=length(S)) and (p<=length(Result)) and (S[p]=Result[p]) do inc(p);
|
||||
if p>length(S) then
|
||||
AssertEquals(Msg+' (actual too short)',String(Result),String(S))
|
||||
else if p>length(Result) then
|
||||
AssertEquals(Msg+' (actual too long)',String(Result),String(S))
|
||||
else
|
||||
AssertEquals(Msg+' (diff at '+IntToStr(p)+' "'+String(S[p])+'")',String(Result),String(S));
|
||||
end;
|
||||
|
||||
Procedure TTestJSWriter.AssertWrite(Const Msg, Result: String;
|
||||
|
Loading…
Reference in New Issue
Block a user