mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 09:59:17 +02:00
* Patch from Mattias Gaertner to make EscapeString a normal method + Fix casing
git-svn-id: trunk@34213 -
This commit is contained in:
parent
1d6900e800
commit
16ce35ea9b
@ -136,7 +136,8 @@ Type
|
|||||||
Procedure WritePrimaryExpression(El: TJSPrimaryExpression);virtual;
|
Procedure WritePrimaryExpression(El: TJSPrimaryExpression);virtual;
|
||||||
Procedure WriteBinary(El: TJSBinary);virtual;
|
Procedure WriteBinary(El: TJSBinary);virtual;
|
||||||
Public
|
Public
|
||||||
Class Function EscapeString(const S: TJSString): TJSString;
|
Function EscapeString(const S: TJSString): String;
|
||||||
|
Function JSStringToStr(const S: TJSString): string;
|
||||||
Constructor Create(AWriter : TTextWriter);
|
Constructor Create(AWriter : TTextWriter);
|
||||||
Constructor Create(Const AFileName : String);
|
Constructor Create(Const AFileName : String);
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
@ -144,7 +145,7 @@ Type
|
|||||||
Procedure Indent;
|
Procedure Indent;
|
||||||
Procedure Undent;
|
Procedure Undent;
|
||||||
Property Writer : TTextWriter Read FWriter;
|
Property Writer : TTextWriter Read FWriter;
|
||||||
Property options : TWriteOptions Read FOptions Write SetOptions;
|
Property Options : TWriteOptions Read FOptions Write SetOptions;
|
||||||
Property IndentSize : Byte Read FIndentSize Write FIndentSize;
|
Property IndentSize : Byte Read FIndentSize Write FIndentSize;
|
||||||
Property UseUTF8 : Boolean Read GetUseUTF8;
|
Property UseUTF8 : Boolean Read GetUseUTF8;
|
||||||
end;
|
end;
|
||||||
@ -275,29 +276,29 @@ begin
|
|||||||
Result:=(woUseUTF8 in Options)
|
Result:=(woUseUTF8 in Options)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Error(Const Msg: String);
|
procedure TJSWriter.Error(const Msg: String);
|
||||||
begin
|
begin
|
||||||
Raise EJSWriter.Create(Msg);
|
Raise EJSWriter.Create(Msg);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Error(Const Fmt: String; Args: Array of const);
|
procedure TJSWriter.Error(const Fmt: String; Args: array of const);
|
||||||
begin
|
begin
|
||||||
Raise EJSWriter.CreateFmt(Fmt,Args);
|
Raise EJSWriter.CreateFmt(Fmt,Args);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteIndent;
|
procedure TJSWriter.WriteIndent;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
If (FLinePos=0) then
|
If (FLinePos=0) then
|
||||||
FLinePos:=Writer.Write(StringOfChar(FIndentChar,FCurIndent));
|
FLinePos:=Writer.Write(StringOfChar(FIndentChar,FCurIndent));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Indent;
|
procedure TJSWriter.Indent;
|
||||||
begin
|
begin
|
||||||
Inc(FCurIndent,FIndentSIze);
|
Inc(FCurIndent,FIndentSIze);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Undent;
|
procedure TJSWriter.Undent;
|
||||||
begin
|
begin
|
||||||
if (FCurIndent>=FIndentSIze) then
|
if (FCurIndent>=FIndentSIze) then
|
||||||
Dec(FCurIndent,FIndentSIze)
|
Dec(FCurIndent,FIndentSIze)
|
||||||
@ -305,7 +306,7 @@ begin
|
|||||||
FCurIndent:=0;
|
FCurIndent:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Write(Const U: UnicodeString);
|
procedure TJSWriter.Write(const U: UnicodeString);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : UTF8String;
|
S : UTF8String;
|
||||||
@ -321,7 +322,7 @@ begin
|
|||||||
FLinePos:=FLinePos+Writer.Write(U);
|
FLinePos:=FLinePos+Writer.Write(U);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.Write(Const S: AnsiString);
|
procedure TJSWriter.Write(const S: AnsiString);
|
||||||
begin
|
begin
|
||||||
if Not (woUseUTF8 in Options) then
|
if Not (woUseUTF8 in Options) then
|
||||||
Write(UnicodeString(S))
|
Write(UnicodeString(S))
|
||||||
@ -332,7 +333,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteLn(Const S: AnsiString);
|
procedure TJSWriter.WriteLn(const S: AnsiString);
|
||||||
begin
|
begin
|
||||||
if Not (woUseUTF8 in Options) then
|
if Not (woUseUTF8 in Options) then
|
||||||
Writeln(UnicodeString(S))
|
Writeln(UnicodeString(S))
|
||||||
@ -344,7 +345,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteLn(Const U: UnicodeString);
|
procedure TJSWriter.WriteLn(const U: UnicodeString);
|
||||||
Var
|
Var
|
||||||
S : UTF8String;
|
S : UTF8String;
|
||||||
|
|
||||||
@ -362,7 +363,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Class Function TJSWriter.EscapeString(const S : TJSString) : TJSString;
|
function TJSWriter.EscapeString(const S: TJSString): String;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
I,J,L : Integer;
|
I,J,L : Integer;
|
||||||
@ -376,9 +377,9 @@ begin
|
|||||||
P:=PWideChar(S);
|
P:=PWideChar(S);
|
||||||
While I<=L do
|
While I<=L do
|
||||||
begin
|
begin
|
||||||
if (AnsiChar(P^) in ['"','/','\',#8,#9,#10,#12,#13]) then
|
if (P^ in ['"','/','\',#8,#9,#10,#12,#13]) then
|
||||||
begin
|
begin
|
||||||
Result:=Result+Copy(S,J,I-J);
|
Result:=Result+JSStringToStr(Copy(S,J,I-J));
|
||||||
Case P^ of
|
Case P^ of
|
||||||
'\' : Result:=Result+'\\';
|
'\' : Result:=Result+'\\';
|
||||||
'/' : Result:=Result+'\/';
|
'/' : Result:=Result+'\/';
|
||||||
@ -394,10 +395,18 @@ begin
|
|||||||
Inc(I);
|
Inc(I);
|
||||||
Inc(P);
|
Inc(P);
|
||||||
end;
|
end;
|
||||||
Result:=Result+Copy(S,J,I-1);
|
Result:=Result+JSStringToStr(Copy(S,J,I-1));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteValue(V: TJSValue);
|
function TJSWriter.JSStringToStr(const S: TJSString): string;
|
||||||
|
begin
|
||||||
|
if UseUTF8 then
|
||||||
|
Result:=UTF8Encode(S)
|
||||||
|
else
|
||||||
|
Result:=String(S);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJSWriter.WriteValue(V: TJSValue);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : String;
|
S : String;
|
||||||
@ -419,20 +428,20 @@ begin
|
|||||||
Write(S);
|
Write(S);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Constructor TJSWriter.Create(AWriter: TTextWriter);
|
constructor TJSWriter.Create(AWriter: TTextWriter);
|
||||||
begin
|
begin
|
||||||
FWriter:=AWriter;
|
FWriter:=AWriter;
|
||||||
FIndentChar:=' ';
|
FIndentChar:=' ';
|
||||||
FOptions:=[woUseUTF8];
|
FOptions:=[woUseUTF8];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Constructor TJSWriter.Create(Const AFileName: String);
|
constructor TJSWriter.Create(const AFileName: String);
|
||||||
begin
|
begin
|
||||||
Create(TFileWriter.Create(AFileName));
|
Create(TFileWriter.Create(AFileName));
|
||||||
FFreeWriter:=True;
|
FFreeWriter:=True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Destructor TJSWriter.Destroy;
|
destructor TJSWriter.Destroy;
|
||||||
begin
|
begin
|
||||||
If FFreeWriter then
|
If FFreeWriter then
|
||||||
begin
|
begin
|
||||||
@ -442,7 +451,7 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteFuncDef(FD: TJSFuncDef);
|
procedure TJSWriter.WriteFuncDef(FD: TJSFuncDef);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
C : Boolean;
|
C : Boolean;
|
||||||
@ -486,8 +495,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteEmptyBlockStatement(El: TJSEmptyBlockStatement);
|
procedure TJSWriter.WriteEmptyBlockStatement(El: TJSEmptyBlockStatement);
|
||||||
begin
|
begin
|
||||||
|
if El=nil then ;
|
||||||
if woCompact in Options then
|
if woCompact in Options then
|
||||||
Write('{}')
|
Write('{}')
|
||||||
else
|
else
|
||||||
@ -497,37 +507,39 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteEmptyStatement(El: TJSEmptyStatement);
|
procedure TJSWriter.WriteEmptyStatement(El: TJSEmptyStatement);
|
||||||
begin
|
begin
|
||||||
if woEmptyStatementAsComment in options then
|
if El=nil then ;
|
||||||
|
if woEmptyStatementAsComment in Options then
|
||||||
Write('/* Empty statement */')
|
Write('/* Empty statement */')
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteRegularExpressionLiteral(El: TJSRegularExpressionLiteral);
|
procedure TJSWriter.WriteRegularExpressionLiteral(
|
||||||
|
El: TJSRegularExpressionLiteral);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('/');
|
Write('/');
|
||||||
Write(EscapeString(EL.Pattern.AsString));
|
Write(EscapeString(El.Pattern.AsString));
|
||||||
Write('/');
|
Write('/');
|
||||||
If Assigned(EL.PatternFlags) then
|
If Assigned(El.PatternFlags) then
|
||||||
Write(EscapeString(EL.PatternFlags.AsString));
|
Write(EscapeString(El.PatternFlags.AsString));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteLiteral(El: TJSLiteral);
|
procedure TJSWriter.WriteLiteral(El: TJSLiteral);
|
||||||
begin
|
begin
|
||||||
WriteValue(el.Value);
|
WriteValue(el.Value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WritePrimaryExpression(El: TJSPrimaryExpression);
|
procedure TJSWriter.WritePrimaryExpression(El: TJSPrimaryExpression);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if El is TJSPrimaryExpressionThis then
|
if El is TJSPrimaryExpressionThis then
|
||||||
Write('this')
|
Write('this')
|
||||||
else if el is TJSPrimaryExpressionIdent then
|
else if El is TJSPrimaryExpressionIdent then
|
||||||
Write(TJSPrimaryExpressionIdent(El).Name);
|
Write(TJSPrimaryExpressionIdent(El).Name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteArrayLiteral(El : TJSArrayLiteral);
|
procedure TJSWriter.WriteArrayLiteral(El: TJSArrayLiteral);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -576,7 +588,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
Procedure TJSWriter.WriteObjectLiteral(El : TJSObjectLiteral);
|
procedure TJSWriter.WriteObjectLiteral(El: TJSObjectLiteral);
|
||||||
|
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -620,7 +632,7 @@ begin
|
|||||||
Write('}');
|
Write('}');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteMemberExpression(el : TJSMemberExpression);
|
procedure TJSWriter.WriteMemberExpression(el: TJSMemberExpression);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if el is TJSNewMemberExpression then
|
if el is TJSNewMemberExpression then
|
||||||
@ -646,7 +658,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteCallExpression(El : TJSCallExpression);
|
procedure TJSWriter.WriteCallExpression(El: TJSCallExpression);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
WriteJS(El.Expr);
|
WriteJS(El.Expr);
|
||||||
@ -656,7 +668,7 @@ begin
|
|||||||
Write('()');
|
Write('()');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteUnary(El : TJSUnary);
|
procedure TJSWriter.WriteUnary(El: TJSUnary);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : String;
|
S : String;
|
||||||
@ -674,7 +686,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteStatementList(El : TJSStatementList);
|
procedure TJSWriter.WriteStatementList(El: TJSStatementList);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
C : Boolean;
|
C : Boolean;
|
||||||
@ -709,7 +721,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteWithStatement(El : TJSWithStatement);
|
procedure TJSWriter.WriteWithStatement(El: TJSWithStatement);
|
||||||
begin
|
begin
|
||||||
Write('with (');
|
Write('with (');
|
||||||
WriteJS(EL.A);
|
WriteJS(EL.A);
|
||||||
@ -722,7 +734,7 @@ begin
|
|||||||
Undent;
|
Undent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteVarDeclarationList(El : TJSVariableDeclarationList);
|
procedure TJSWriter.WriteVarDeclarationList(El: TJSVariableDeclarationList);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
WriteJS(EL.A);
|
WriteJS(EL.A);
|
||||||
@ -733,7 +745,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteBinary(El : TJSBinary);
|
procedure TJSWriter.WriteBinary(El: TJSBinary);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : AnsiString;
|
S : AnsiString;
|
||||||
@ -754,7 +766,7 @@ begin
|
|||||||
Write(')');
|
Write(')');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteConditionalExpression(El : TJSConditionalExpression);
|
procedure TJSWriter.WriteConditionalExpression(El: TJSConditionalExpression);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
write('(');
|
write('(');
|
||||||
@ -766,7 +778,7 @@ begin
|
|||||||
write(')');
|
write(')');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteAssignStatement(El : TJSAssignStatement);
|
procedure TJSWriter.WriteAssignStatement(El: TJSAssignStatement);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : AnsiString;
|
S : AnsiString;
|
||||||
@ -779,7 +791,7 @@ begin
|
|||||||
WriteJS(EL.Expr);
|
WriteJS(EL.Expr);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteVarDeclaration(El : TJSVarDeclaration);
|
procedure TJSWriter.WriteVarDeclaration(El: TJSVarDeclaration);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write(EL.Name);
|
Write(EL.Name);
|
||||||
@ -790,7 +802,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteIfStatement(El : TJSIfStatement);
|
procedure TJSWriter.WriteIfStatement(El: TJSIfStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('if (');
|
Write('if (');
|
||||||
@ -804,7 +816,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteForInStatement(El : TJSForInStatement);
|
procedure TJSWriter.WriteForInStatement(El: TJSForInStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('for (');
|
Write('for (');
|
||||||
@ -818,7 +830,7 @@ begin
|
|||||||
WriteJS(El.Body);
|
WriteJS(El.Body);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteForStatement(El : TJSForStatement);
|
procedure TJSWriter.WriteForStatement(El: TJSForStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('for (');
|
Write('for (');
|
||||||
@ -835,7 +847,7 @@ begin
|
|||||||
WriteJS(El.Body);
|
WriteJS(El.Body);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteWhileStatement(El : TJSWhileStatement);
|
procedure TJSWriter.WriteWhileStatement(El: TJSWhileStatement);
|
||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -860,7 +872,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteSwitchStatement(El : TJSSwitchStatement);
|
procedure TJSWriter.WriteSwitchStatement(El: TJSSwitchStatement);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
C : Boolean;
|
C : Boolean;
|
||||||
@ -913,7 +925,7 @@ begin
|
|||||||
Write('}');
|
Write('}');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteTargetStatement(El : TJSTargetStatement);
|
procedure TJSWriter.WriteTargetStatement(El: TJSTargetStatement);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
TN : TJSString;
|
TN : TJSString;
|
||||||
@ -946,14 +958,14 @@ begin
|
|||||||
Error('Unknown target statement class: "%s"',[EL.ClassName])
|
Error('Unknown target statement class: "%s"',[EL.ClassName])
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteReturnStatement(EL: TJSReturnStatement);
|
procedure TJSWriter.WriteReturnStatement(EL: TJSReturnStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('return ');
|
Write('return ');
|
||||||
WriteJS(EL.Expr);
|
WriteJS(EL.Expr);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteLabeledStatement(El : TJSLabeledStatement);
|
procedure TJSWriter.WriteLabeledStatement(El: TJSLabeledStatement);
|
||||||
begin
|
begin
|
||||||
if Assigned(EL.TheLabel) then
|
if Assigned(EL.TheLabel) then
|
||||||
begin
|
begin
|
||||||
@ -967,7 +979,7 @@ begin
|
|||||||
WriteJS(EL.A);
|
WriteJS(EL.A);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteTryStatement(el :TJSTryStatement);
|
procedure TJSWriter.WriteTryStatement(el: TJSTryStatement);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
C : Boolean;
|
C : Boolean;
|
||||||
@ -1027,21 +1039,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteFunctionBody(el : TJSFunctionBody);
|
procedure TJSWriter.WriteFunctionBody(el: TJSFunctionBody);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if Assigned(EL.A) then
|
if Assigned(EL.A) then
|
||||||
WriteJS(EL.A);
|
WriteJS(EL.A);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteFunctionDeclarationStatement(El : TJSFunctionDeclarationStatement);
|
procedure TJSWriter.WriteFunctionDeclarationStatement(
|
||||||
|
El: TJSFunctionDeclarationStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if Assigned(EL.AFunction) then
|
if Assigned(EL.AFunction) then
|
||||||
WriteFuncDef(EL.AFunction);
|
WriteFuncDef(EL.AFunction);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteSourceElements(El :TJSSourceElements);
|
procedure TJSWriter.WriteSourceElements(El: TJSSourceElements);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
I : Integer;
|
I : Integer;
|
||||||
@ -1065,14 +1078,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
Procedure TJSWriter.WriteVariableStatement(el : TJSVariableStatement);
|
procedure TJSWriter.WriteVariableStatement(el: TJSVariableStatement);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Write('var ');
|
Write('var ');
|
||||||
WriteJS(EL.A);
|
WriteJS(EL.A);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TJSWriter.WriteJS(El: TJSElement);
|
procedure TJSWriter.WriteJS(El: TJSElement);
|
||||||
begin
|
begin
|
||||||
{$IFDEF DEBUGJSWRITER}
|
{$IFDEF DEBUGJSWRITER}
|
||||||
if (EL<>Nil) then
|
if (EL<>Nil) then
|
||||||
|
Loading…
Reference in New Issue
Block a user