Browse Source

pastojs: typecast integer to widechar

git-svn-id: trunk@47407 -
(cherry picked from commit bd8362dfcee6f9ea9ab9d60754afdca8335d05f1)
Mattias Gaertner 4 years ago
parent
commit
c8aa7cd06c
2 changed files with 6 additions and 2 deletions
  1. 2 2
      packages/pastojs/src/fppas2js.pp
  2. 4 0
      packages/pastojs/tests/tcmodules.pas

+ 2 - 2
packages/pastojs/src/fppas2js.pp

@@ -12305,9 +12305,9 @@ begin
         end;
       end;
     end
-  else if to_bt=btChar then
+  else if to_bt in [btChar,btWideChar] then
     begin
-    if from_bt=btChar then
+    if from_bt in [btChar,btWideChar] then
       begin
       // char to char
       Result:=ConvertExpression(Param,AContext);

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

@@ -7937,9 +7937,11 @@ begin
   'var',
   '  c: char;',
   '  wc: widechar;',
+  '  w: word;',
   'begin',
   '  Fly(wc);',
   '  Run(c);',
+  '  wc:=WideChar(w);',
   '']);
   ConvertProgram;
   CheckSource('TestWideChar_VarArg',
@@ -7950,6 +7952,7 @@ begin
     '};',
     'this.c = "";',
     'this.wc = "";',
+    'this.w = 0;',
     '']),
     LinesToStr([ // this.$main
     '$mod.Fly({',
@@ -7970,6 +7973,7 @@ begin
     '      this.p.c = v;',
     '    }',
     '});',
+    '$mod.wc = String.fromCharCode($mod.w);',
     '',
     '']));
 end;