fcl-js: fixed writing brackets around binary B

git-svn-id: trunk@37677 -
This commit is contained in:
Mattias Gaertner 2017-12-05 15:22:15 +00:00
parent 5d5e38ec84
commit 4e4a4a465b
2 changed files with 109 additions and 76 deletions

View File

@ -999,6 +999,7 @@ begin
else else
S:=' '+S+' '; S:=' '+S+' ';
end; end;
FSkipRoundBrackets:=false;
Write(S); Write(S);
WriteJS(El.B); WriteJS(El.B);
Writer.CurElement:=El; Writer.CurElement:=El;

View File

@ -246,6 +246,7 @@ type
Procedure TestBinaryModCompact; Procedure TestBinaryModCompact;
Procedure TestBinaryComma; Procedure TestBinaryComma;
Procedure TestBinaryCommaCompact; Procedure TestBinaryCommaCompact;
Procedure TestBinaryCallDiv;
Procedure TestDotMember; Procedure TestDotMember;
Procedure TestArgMember; Procedure TestArgMember;
Procedure TestNewMember; Procedure TestNewMember;
@ -264,7 +265,7 @@ implementation
{ TTestExpressionWriter } { TTestExpressionWriter }
Procedure TTestExpressionWriter.TestUnary(Const Msg: String; procedure TTestExpressionWriter.TestUnary(const Msg: String;
AClass: TJSUnaryClass; Result: String); AClass: TJSUnaryClass; Result: String);
Var Var
U : TJSUnary; U : TJSUnary;
@ -275,7 +276,7 @@ begin
AssertWrite(Msg,Result,U); AssertWrite(Msg,Result,U);
end; end;
Procedure TTestExpressionWriter.TestBinary(Const Msg: String; procedure TTestExpressionWriter.TestBinary(const Msg: String;
AClass: TJSBinaryClass; Result: String; ACompact: Boolean); AClass: TJSBinaryClass; Result: String; ACompact: Boolean);
Var Var
U : TJSBinary; U : TJSBinary;
@ -289,319 +290,350 @@ begin
AssertWrite(Msg,Result,U); AssertWrite(Msg,Result,U);
end; end;
Procedure TTestExpressionWriter.TestIdent; procedure TTestExpressionWriter.TestIdent;
begin begin
AssertWrite('ABC','ABC',CreateIdent('ABC')); AssertWrite('ABC','ABC',CreateIdent('ABC'));
end; end;
Procedure TTestExpressionWriter.TestThis; procedure TTestExpressionWriter.TestThis;
begin begin
AssertWrite('this','this',TJSPrimaryExpressionThis.Create(0,0)); AssertWrite('this','this',TJSPrimaryExpressionThis.Create(0,0));
end; end;
Procedure TTestExpressionWriter.TestThrowStatement; procedure TTestExpressionWriter.TestThrowStatement;
begin begin
TestUnary('Throw expresssion',TJSThrowStatement,'throw a'); TestUnary('Throw expresssion',TJSThrowStatement,'throw a');
end; end;
Procedure TTestExpressionWriter.TestUnaryDelete; procedure TTestExpressionWriter.TestUnaryDelete;
begin begin
TestUnary('Delete expresssion',TJSUnaryDeleteExpression,'delete a'); TestUnary('Delete expresssion',TJSUnaryDeleteExpression,'delete a');
end; end;
Procedure TTestExpressionWriter.TestUnaryVoid; procedure TTestExpressionWriter.TestUnaryVoid;
begin begin
TestUnary('Void expresssion',TJSUnaryVoidExpression,'void a'); TestUnary('Void expresssion',TJSUnaryVoidExpression,'void a');
end; end;
Procedure TTestExpressionWriter.TestUnaryTypeOf; procedure TTestExpressionWriter.TestUnaryTypeOf;
begin begin
TestUnary('typeof expresssion',TJSUnaryTypeOfExpression,'typeof a'); TestUnary('typeof expresssion',TJSUnaryTypeOfExpression,'typeof a');
end; end;
Procedure TTestExpressionWriter.TestPrefixPlusPLus; procedure TTestExpressionWriter.TestPrefixPlusPLus;
begin begin
TestUnary('prefix ++ expresssion',TJSUnaryPrePlusPlusExpression,'++a'); TestUnary('prefix ++ expresssion',TJSUnaryPrePlusPlusExpression,'++a');
end; end;
Procedure TTestExpressionWriter.TestPrefixMinusMinus; procedure TTestExpressionWriter.TestPrefixMinusMinus;
begin begin
TestUnary('prefix -- expresssion',TJSUnaryPreMinusMinusExpression,'--a'); TestUnary('prefix -- expresssion',TJSUnaryPreMinusMinusExpression,'--a');
end; end;
Procedure TTestExpressionWriter.TestUnaryMinus; procedure TTestExpressionWriter.TestUnaryMinus;
begin begin
TestUnary('unary - expresssion',TJSUnaryMinusExpression,'-a'); TestUnary('unary - expresssion',TJSUnaryMinusExpression,'-a');
end; end;
Procedure TTestExpressionWriter.TestUnaryPlus; procedure TTestExpressionWriter.TestUnaryPlus;
begin begin
TestUnary('unary + expresssion',TJSUnaryPlusExpression,'+a'); TestUnary('unary + expresssion',TJSUnaryPlusExpression,'+a');
end; end;
Procedure TTestExpressionWriter.TestUnaryInv; procedure TTestExpressionWriter.TestUnaryInv;
begin begin
TestUnary('unary invert expresssion',TJSUnaryInvExpression,'~a'); TestUnary('unary invert expresssion',TJSUnaryInvExpression,'~a');
end; end;
Procedure TTestExpressionWriter.TestUnaryNot; procedure TTestExpressionWriter.TestUnaryNot;
begin begin
TestUnary('unary not expresssion',TJSUnaryNotExpression,'!a'); TestUnary('unary not expresssion',TJSUnaryNotExpression,'!a');
end; end;
Procedure TTestExpressionWriter.TestPostPlusPLus; procedure TTestExpressionWriter.TestPostPlusPLus;
begin begin
TestUnary('postfix ++ expresssion',TJSUnaryPostPlusPlusExpression,'a++'); TestUnary('postfix ++ expresssion',TJSUnaryPostPlusPlusExpression,'a++');
end; end;
Procedure TTestExpressionWriter.TestPostMinusMinus; procedure TTestExpressionWriter.TestPostMinusMinus;
begin begin
TestUnary('postfix -- expresssion',TJSUnaryPostMinusMinusExpression,'a--'); TestUnary('postfix -- expresssion',TJSUnaryPostMinusMinusExpression,'a--');
end; end;
Procedure TTestExpressionWriter.TestBinaryLogicalOr; procedure TTestExpressionWriter.TestBinaryLogicalOr;
begin begin
TestBinary('logical or',TJSLogicalOrExpression,'(a || b)',False); TestBinary('logical or',TJSLogicalOrExpression,'(a || b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryLogicalOrCompact; procedure TTestExpressionWriter.TestBinaryLogicalOrCompact;
begin begin
TestBinary('logical or',TJSLogicalOrExpression,'(a||b)',True); TestBinary('logical or',TJSLogicalOrExpression,'(a||b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryLogicalAnd; procedure TTestExpressionWriter.TestBinaryLogicalAnd;
begin begin
TestBinary('logical or',TJSLogicalAndExpression,'(a && b)',False); TestBinary('logical or',TJSLogicalAndExpression,'(a && b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryLogicalAndCompact; procedure TTestExpressionWriter.TestBinaryLogicalAndCompact;
begin begin
TestBinary('logical or',TJSLogicalAndExpression,'(a&&b)',True); TestBinary('logical or',TJSLogicalAndExpression,'(a&&b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseOr; procedure TTestExpressionWriter.TestBinaryBitwiseOr;
begin begin
TestBinary('Bitwise or',TJSBitwiseOrExpression,'(a | b)',False); TestBinary('Bitwise or',TJSBitwiseOrExpression,'(a | b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseOrCompact; procedure TTestExpressionWriter.TestBinaryBitwiseOrCompact;
begin begin
TestBinary('Bitwise or',TJSBitwiseOrExpression,'(a|b)',True); TestBinary('Bitwise or',TJSBitwiseOrExpression,'(a|b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseAnd; procedure TTestExpressionWriter.TestBinaryBitwiseAnd;
begin begin
TestBinary('Bitwise and',TJSBitwiseAndExpression,'(a & b)',False); TestBinary('Bitwise and',TJSBitwiseAndExpression,'(a & b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseAndCompact; procedure TTestExpressionWriter.TestBinaryBitwiseAndCompact;
begin begin
TestBinary('Bitwise and',TJSBitwiseAndExpression,'(a&b)',True); TestBinary('Bitwise and',TJSBitwiseAndExpression,'(a&b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseXOr; procedure TTestExpressionWriter.TestBinaryBitwiseXOr;
begin begin
TestBinary('Bitwise xor',TJSBitwiseXOrExpression,'(a ^ b)',False); TestBinary('Bitwise xor',TJSBitwiseXOrExpression,'(a ^ b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryBitwiseXOrCompact; procedure TTestExpressionWriter.TestBinaryBitwiseXOrCompact;
begin begin
TestBinary('Bitwise xor',TJSBitwiseXOrExpression,'(a^b)',True); TestBinary('Bitwise xor',TJSBitwiseXOrExpression,'(a^b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryEQ; procedure TTestExpressionWriter.TestBinaryEQ;
begin begin
TestBinary('Equal',TJSEqualityExpressionEQ,'(a == b)',False); TestBinary('Equal',TJSEqualityExpressionEQ,'(a == b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryEQCompact; procedure TTestExpressionWriter.TestBinaryEQCompact;
begin begin
TestBinary('Equal',TJSEqualityExpressionEQ,'(a==b)',True); TestBinary('Equal',TJSEqualityExpressionEQ,'(a==b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryNE; procedure TTestExpressionWriter.TestBinaryNE;
begin begin
TestBinary('Not Equal',TJSEqualityExpressionNE,'(a != b)',False); TestBinary('Not Equal',TJSEqualityExpressionNE,'(a != b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryNECompact; procedure TTestExpressionWriter.TestBinaryNECompact;
begin begin
TestBinary('Not Equal',TJSEqualityExpressionNE,'(a!=b)',True); TestBinary('Not Equal',TJSEqualityExpressionNE,'(a!=b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinarySEQ; procedure TTestExpressionWriter.TestBinarySEQ;
begin begin
TestBinary('Strictly Equal',TJSEqualityExpressionSEQ,'(a === b)',False); TestBinary('Strictly Equal',TJSEqualityExpressionSEQ,'(a === b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinarySEQCompact; procedure TTestExpressionWriter.TestBinarySEQCompact;
begin begin
TestBinary('Strictly Equal',TJSEqualityExpressionSEQ,'(a===b)',True); TestBinary('Strictly Equal',TJSEqualityExpressionSEQ,'(a===b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinarySNE; procedure TTestExpressionWriter.TestBinarySNE;
begin begin
TestBinary('Strictly Equal',TJSEqualityExpressionSNE,'(a !== b)',False); TestBinary('Strictly Equal',TJSEqualityExpressionSNE,'(a !== b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinarySNECompact; procedure TTestExpressionWriter.TestBinarySNECompact;
begin begin
TestBinary('Strictly Equal',TJSEqualityExpressionSNE,'(a!==b)',True); TestBinary('Strictly Equal',TJSEqualityExpressionSNE,'(a!==b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryLT; procedure TTestExpressionWriter.TestBinaryLT;
begin begin
TestBinary('Less than',TJSRelationalExpressionLT,'(a < b)',False); TestBinary('Less than',TJSRelationalExpressionLT,'(a < b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryLTCompact; procedure TTestExpressionWriter.TestBinaryLTCompact;
begin begin
TestBinary('Less than',TJSRelationalExpressionLT,'(a<b)',True); TestBinary('Less than',TJSRelationalExpressionLT,'(a<b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryGT; procedure TTestExpressionWriter.TestBinaryGT;
begin begin
TestBinary('Greater than',TJSRelationalExpressionGT,'(a > b)',False); TestBinary('Greater than',TJSRelationalExpressionGT,'(a > b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryGTCompact; procedure TTestExpressionWriter.TestBinaryGTCompact;
begin begin
TestBinary('Greater than',TJSRelationalExpressionGT,'(a>b)',True); TestBinary('Greater than',TJSRelationalExpressionGT,'(a>b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryLE; procedure TTestExpressionWriter.TestBinaryLE;
begin begin
TestBinary('Less than or equal',TJSRelationalExpressionLE,'(a <= b)',False); TestBinary('Less than or equal',TJSRelationalExpressionLE,'(a <= b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryLECompact; procedure TTestExpressionWriter.TestBinaryLECompact;
begin begin
TestBinary('Less than or equal',TJSRelationalExpressionLE,'(a<=b)',True); TestBinary('Less than or equal',TJSRelationalExpressionLE,'(a<=b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryGE; procedure TTestExpressionWriter.TestBinaryGE;
begin begin
TestBinary('Greater than or equal',TJSRelationalExpressionGE,'(a >= b)',False); TestBinary('Greater than or equal',TJSRelationalExpressionGE,'(a >= b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryGECompact; procedure TTestExpressionWriter.TestBinaryGECompact;
begin begin
TestBinary('Greater than or equal',TJSRelationalExpressionGE,'(a>=b)',True); TestBinary('Greater than or equal',TJSRelationalExpressionGE,'(a>=b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryIN; procedure TTestExpressionWriter.TestBinaryIN;
begin begin
TestBinary('Prop in Object',TJSRelationalExpressionIN,'(a in b)',False); TestBinary('Prop in Object',TJSRelationalExpressionIN,'(a in b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryINCompact; procedure TTestExpressionWriter.TestBinaryINCompact;
begin begin
TestBinary('Prop in Object',TJSRelationalExpressionIN,'(a in b)',True); TestBinary('Prop in Object',TJSRelationalExpressionIN,'(a in b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryInstanceOf; procedure TTestExpressionWriter.TestBinaryInstanceOf;
begin begin
TestBinary('A instanceof Object',TJSRelationalExpressionInStanceOf,'(a instanceof b)',False); TestBinary('A instanceof Object',TJSRelationalExpressionInStanceOf,'(a instanceof b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryInstanceOfCompact; procedure TTestExpressionWriter.TestBinaryInstanceOfCompact;
begin begin
TestBinary('A instanceof Object',TJSRelationalExpressionInStanceOf,'(a instanceof b)',true); TestBinary('A instanceof Object',TJSRelationalExpressionInStanceOf,'(a instanceof b)',true);
end; end;
Procedure TTestExpressionWriter.TestBinaryLShift; procedure TTestExpressionWriter.TestBinaryLShift;
begin begin
TestBinary('A lshift B',TJSLShiftExpression,'(a << b)',False); TestBinary('A lshift B',TJSLShiftExpression,'(a << b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryLShiftOfCompact; procedure TTestExpressionWriter.TestBinaryLShiftOfCompact;
begin begin
TestBinary('A lshift B',TJSLShiftExpression,'(a<<b)',True); TestBinary('A lshift B',TJSLShiftExpression,'(a<<b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryRShift; procedure TTestExpressionWriter.TestBinaryRShift;
begin begin
TestBinary('A rshift B',TJSRShiftExpression,'(a >> b)',False); TestBinary('A rshift B',TJSRShiftExpression,'(a >> b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryRShiftOfCompact; procedure TTestExpressionWriter.TestBinaryRShiftOfCompact;
begin begin
TestBinary('A rshift B',TJSRShiftExpression,'(a>>b)',True); TestBinary('A rshift B',TJSRShiftExpression,'(a>>b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryURShift; procedure TTestExpressionWriter.TestBinaryURShift;
begin begin
TestBinary('A urshift B',TJSURShiftExpression,'(a >>> b)',False); TestBinary('A urshift B',TJSURShiftExpression,'(a >>> b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryURShiftOfCompact; procedure TTestExpressionWriter.TestBinaryURShiftOfCompact;
begin begin
TestBinary('A urshift B',TJSURShiftExpression,'(a>>>b)',True); TestBinary('A urshift B',TJSURShiftExpression,'(a>>>b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryPlus; procedure TTestExpressionWriter.TestBinaryPlus;
begin begin
TestBinary('A plus B',TJSAdditiveExpressionPlus,'(a + b)',False); TestBinary('A plus B',TJSAdditiveExpressionPlus,'(a + b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryPlusCompact; procedure TTestExpressionWriter.TestBinaryPlusCompact;
begin begin
TestBinary('A plus B',TJSAdditiveExpressionPlus,'(a+b)',True); TestBinary('A plus B',TJSAdditiveExpressionPlus,'(a+b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryMinus; procedure TTestExpressionWriter.TestBinaryMinus;
begin begin
TestBinary('A minus B',TJSAdditiveExpressionMinus,'(a - b)',False); TestBinary('A minus B',TJSAdditiveExpressionMinus,'(a - b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryMinusCompact; procedure TTestExpressionWriter.TestBinaryMinusCompact;
begin begin
TestBinary('A minus B',TJSAdditiveExpressionMinus,'(a-b)',True); TestBinary('A minus B',TJSAdditiveExpressionMinus,'(a-b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryMultiply; procedure TTestExpressionWriter.TestBinaryMultiply;
begin begin
TestBinary('A multiply B',TJSMultiplicativeExpressionMul,'(a * b)',False); TestBinary('A multiply B',TJSMultiplicativeExpressionMul,'(a * b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryMultiplyCompact; procedure TTestExpressionWriter.TestBinaryMultiplyCompact;
begin begin
TestBinary('A multiply B',TJSMultiplicativeExpressionMul,'(a*b)',True); TestBinary('A multiply B',TJSMultiplicativeExpressionMul,'(a*b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryDivide; procedure TTestExpressionWriter.TestBinaryDivide;
begin begin
TestBinary('A divide B',TJSMultiplicativeExpressionDiv,'(a / b)',False); TestBinary('A divide B',TJSMultiplicativeExpressionDiv,'(a / b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryDivideCompact; procedure TTestExpressionWriter.TestBinaryDivideCompact;
begin begin
TestBinary('A divide B',TJSMultiplicativeExpressionDiv,'(a/b)',True); TestBinary('A divide B',TJSMultiplicativeExpressionDiv,'(a/b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryMod; procedure TTestExpressionWriter.TestBinaryMod;
begin begin
TestBinary('A mod B',TJSMultiplicativeExpressionMod,'(a % b)',False); TestBinary('A mod B',TJSMultiplicativeExpressionMod,'(a % b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryModCompact; procedure TTestExpressionWriter.TestBinaryModCompact;
begin begin
TestBinary('A mod B',TJSMultiplicativeExpressionMod,'(a%b)',True); TestBinary('A mod B',TJSMultiplicativeExpressionMod,'(a%b)',True);
end; end;
Procedure TTestExpressionWriter.TestBinaryComma; procedure TTestExpressionWriter.TestBinaryComma;
begin begin
TestBinary('A comma B',TJSCommaExpression,'(a, b)',False); TestBinary('A comma B',TJSCommaExpression,'(a, b)',False);
end; end;
Procedure TTestExpressionWriter.TestBinaryCommaCompact; procedure TTestExpressionWriter.TestBinaryCommaCompact;
begin begin
TestBinary('A comma B',TJSCommaExpression,'(a,b)',True); TestBinary('A comma B',TJSCommaExpression,'(a,b)',True);
end; end;
Procedure TTestExpressionWriter.TestDotMember; procedure TTestExpressionWriter.TestBinaryCallDiv;
var
aDiv: TJSMultiplicativeExpressionDiv;
LeftMul: TJSMultiplicativeExpressionMul;
LeftCall: TJSCallExpression;
RightSub: TJSAdditiveExpressionMinus;
Expr: String;
begin
// (2*f(3))/(a-4)
aDiv:=TJSMultiplicativeExpressionDiv.Create(0,0);
// (2*f(3))
LeftMul:=TJSMultiplicativeExpressionMul.Create(0,0);
aDiv.A:=LeftMul;
// 2
LeftMul.A:=CreateLiteral(2);
// f(3)
LeftCall:=TJSCallExpression.Create(0,0);
LeftMul.B:=LeftCall;
LeftCall.Expr:=CreateIdent('f');
LeftCall.Args:=TJSArguments.Create(0,0);
LeftCall.AddArg(CreateLiteral(3));
// (a-4)
RightSub:=TJSAdditiveExpressionMinus.Create(0,0);
aDiv.B:=RightSub;
RightSub.A:=CreateIdent('a');
RightSub.B:=CreateLiteral(4);
Expr:='((2 * f(3)) / (a - 4))';
AssertWrite('keep needed brackets of '+Expr,Expr,aDiv);
end;
procedure TTestExpressionWriter.TestDotMember;
Var Var
U : TJSDotMemberExpression; U : TJSDotMemberExpression;
@ -612,7 +644,7 @@ begin
AssertWrite('member b of object a (a.b)','a.b',U); AssertWrite('member b of object a (a.b)','a.b',U);
end; end;
Procedure TTestExpressionWriter.TestArgMember; procedure TTestExpressionWriter.TestArgMember;
Var Var
U : TJSBracketMemberExpression; U : TJSBracketMemberExpression;
@ -623,7 +655,7 @@ begin
AssertWrite('member b of object a (a[b])','a[b]',U); AssertWrite('member b of object a (a[b])','a[b]',U);
end; end;
Procedure TTestExpressionWriter.TestNewMember; procedure TTestExpressionWriter.TestNewMember;
Var Var
U : TJSNewMemberExpression; U : TJSNewMemberExpression;
@ -636,7 +668,7 @@ begin
AssertWrite('member b of object a (a[b])','new a(123)',U); AssertWrite('member b of object a (a[b])','new a(123)',U);
end; end;
Procedure TTestExpressionWriter.TestNewMemberCompact; procedure TTestExpressionWriter.TestNewMemberCompact;
Var Var
U : TJSNewMemberExpression; U : TJSNewMemberExpression;
@ -651,7 +683,7 @@ begin
AssertWrite('new a(123)','new a(123)',U); AssertWrite('new a(123)','new a(123)',U);
end; end;
Procedure TTestExpressionWriter.TestNewMemberNoArgs; procedure TTestExpressionWriter.TestNewMemberNoArgs;
Var Var
U : TJSNewMemberExpression; U : TJSNewMemberExpression;
@ -661,7 +693,7 @@ begin
AssertWrite('new a()','new a()',U); AssertWrite('new a()','new a()',U);
end; end;
Procedure TTestExpressionWriter.TestCall; procedure TTestExpressionWriter.TestCall;
Var Var
U : TJSCallExpression; U : TJSCallExpression;
@ -675,7 +707,7 @@ begin
'a(123)',U); 'a(123)',U);
end; end;
Procedure TTestExpressionWriter.TestCallCompact; procedure TTestExpressionWriter.TestCallCompact;
Var Var
U : TJSCallExpression; U : TJSCallExpression;
@ -689,7 +721,7 @@ begin
AssertWrite('call a(123)','a(123)',U); AssertWrite('call a(123)','a(123)',U);
end; end;
Procedure TTestExpressionWriter.TestCallCompact2; procedure TTestExpressionWriter.TestCallCompact2;
Var Var
U : TJSCallExpression; U : TJSCallExpression;
@ -706,7 +738,7 @@ begin
end; end;
Procedure TTestExpressionWriter.TestCallNoArgs; procedure TTestExpressionWriter.TestCallNoArgs;
Var Var
U : TJSCallExpression; U : TJSCallExpression;
@ -716,7 +748,7 @@ begin
AssertWrite('call a()','a()',U); AssertWrite('call a()','a()',U);
end; end;
Procedure TTestExpressionWriter.TestConditional; procedure TTestExpressionWriter.TestConditional;
Var Var
U : TJSConditionalExpression; U : TJSConditionalExpression;
@ -728,7 +760,7 @@ begin
AssertWrite('a ? b : c','(a ? b : c)',U); AssertWrite('a ? b : c','(a ? b : c)',U);
end; end;
Procedure TTestExpressionWriter.TestRegularExpressionLiteral; procedure TTestExpressionWriter.TestRegularExpressionLiteral;
Var Var
S : TJSRegularExpressionLiteral; S : TJSRegularExpressionLiteral;
@ -738,7 +770,7 @@ begin
AssertWrite('/a/','/a/',S); AssertWrite('/a/','/a/',S);
end; end;
Procedure TTestExpressionWriter.TestRegularExpressionLiteralFlags; procedure TTestExpressionWriter.TestRegularExpressionLiteralFlags;
Var Var
S : TJSRegularExpressionLiteral; S : TJSRegularExpressionLiteral;
begin begin