소스 검색

fcl-js: do not escape /

(cherry picked from commit 410c1bbaa0211b56076ede5ec0b2c9605c5cba62)
mattias 3 년 전
부모
커밋
5ef774f6ab
3개의 변경된 파일6개의 추가작업 그리고 7개의 파일을 삭제
  1. 1 2
      packages/fcl-js/src/jswriter.pp
  2. 1 1
      packages/fcl-js/tests/tcwriter.pp
  3. 4 4
      packages/pastojs/tests/tcmodules.pas

+ 1 - 2
packages/fcl-js/src/jswriter.pp

@@ -590,13 +590,12 @@ begin
   While I<=L do
   While I<=L do
     begin
     begin
     c:=S[I];
     c:=S[I];
-    if (c in [#0..#31,'"','''','/','\'])
+    if (c in [#0..#31,'"','''','\'])
         or (c>=#$ff00) or ((c>=#$D800) and (c<=#$DFFF)) then
         or (c>=#$ff00) or ((c>=#$D800) and (c<=#$DFFF)) then
       begin
       begin
       R:=R+Copy(S,J,I-J);
       R:=R+Copy(S,J,I-J);
       Case c of
       Case c of
         '\' : R:=R+'\\';
         '\' : R:=R+'\\';
-        '/' : R:=R+'\/';
         '"' : if Quote=jseqSingle then R:=R+'"' else R:=R+'\"';
         '"' : if Quote=jseqSingle then R:=R+'"' else R:=R+'\"';
         '''': if Quote=jseqDouble then R:=R+'''' else R:=R+'\''';
         '''': if Quote=jseqDouble then R:=R+'''' else R:=R+'\''';
         #0..#7,#11,#14..#31: R:=R+'\x'+TJSString(hexStr(ord(c),2));
         #0..#7,#11,#14..#31: R:=R+'\x'+TJSString(hexStr(ord(c),2));

+ 1 - 1
packages/fcl-js/tests/tcwriter.pp

@@ -2638,7 +2638,7 @@ Var
 begin
 begin
   L:=TJSLiteral.Create(0,0,'');
   L:=TJSLiteral.Create(0,0,'');
   L.Value.AsString:='ab/cd';
   L.Value.AsString:='ab/cd';
-  AssertWrite('ab/cd','"ab\/cd"',L);
+  AssertWrite('ab/cd','"ab/cd"',L);
 end;
 end;
 
 
 Procedure TTestLiteralWriter.TestStringsBack;
 Procedure TTestLiteralWriter.TestStringsBack;

+ 4 - 4
packages/pastojs/tests/tcmodules.pas

@@ -493,7 +493,7 @@ type
     Procedure TestArray_SetLengthMultiDim;
     Procedure TestArray_SetLengthMultiDim;
     Procedure TestArray_SetLengthDynOfStatic;
     Procedure TestArray_SetLengthDynOfStatic;
     Procedure TestArray_OpenArrayOfString;
     Procedure TestArray_OpenArrayOfString;
-    Procedure TestArray_ArrayOfCharAssignString; // ToDo
+    Procedure TestArray_ArrayOfCharAssignString;
     Procedure TestArray_ConstRef;
     Procedure TestArray_ConstRef;
     Procedure TestArray_Concat;
     Procedure TestArray_Concat;
     Procedure TestArray_Copy;
     Procedure TestArray_Copy;
@@ -961,8 +961,6 @@ type
     Procedure TestLibrary_Export_Index_Fail;
     Procedure TestLibrary_Export_Index_Fail;
     Procedure TestLibrary_ExportVar;
     Procedure TestLibrary_ExportVar;
     Procedure TestLibrary_ExportUnitFunc;
     Procedure TestLibrary_ExportUnitFunc;
-    // ToDo: test delayed specialization init
-    // ToDo: shortrefoptimization
   end;
   end;
 
 
 function LinesToStr(Args: array of const): string;
 function LinesToStr(Args: array of const): string;
@@ -7247,6 +7245,7 @@ end;
 procedure TTestModule.TestSet_AnonymousEnumTypeChar;
 procedure TTestModule.TestSet_AnonymousEnumTypeChar;
 begin
 begin
   exit;
   exit;
+
   StartProgram(false);
   StartProgram(false);
   Add([
   Add([
   'type',
   'type',
@@ -8649,7 +8648,7 @@ begin
   '  s:=concat(s,''a'',s);',
   '  s:=concat(s,''a'',s);',
   '  s:=#250#269;',
   '  s:=#250#269;',
   '  i:=low(s)+high(a);',
   '  i:=low(s)+high(a);',
-  //'  s:=#$2F804;',
+  '  s:=''a/b'';',
   // ToDo: \uD87E\uDC04 -> \u{2F804}
   // ToDo: \uD87E\uDC04 -> \u{2F804}
   '']);
   '']);
   ConvertProgram;
   ConvertProgram;
@@ -8684,6 +8683,7 @@ begin
     '$mod.s = $mod.s.concat("a", $mod.s);',
     '$mod.s = $mod.s.concat("a", $mod.s);',
     '$mod.s = "úč";',
     '$mod.s = "úč";',
     '$mod.i = 1 + $mod.a.length;',
     '$mod.i = 1 + $mod.a.length;',
+    '$mod.s = "a/b";',
     '']));
     '']));
 end;
 end;