Browse Source

pastojs: implemented logical xor

git-svn-id: trunk@37393 -
Mattias Gaertner 7 years ago
parent
commit
5fc3bbba12
2 changed files with 3 additions and 0 deletions
  1. 1 0
      packages/pastojs/src/fppas2js.pp
  2. 2 0
      packages/pastojs/tests/tcmodules.pas

+ 1 - 0
packages/pastojs/src/fppas2js.pp

@@ -4129,6 +4129,7 @@ begin
             Case El.OpCode of
               eopAnd : C:=TJSLogicalAndExpression;
               eopOr : C:=TJSLogicalOrExpression;
+              eopXor : C:=TJSBitwiseXOrExpression;
             else
               DoError(20161024191234,nBinaryOpcodeNotSupported,sBinaryOpcodeNotSupported,['logical XOR'],El);
             end;

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

@@ -2075,6 +2075,7 @@ begin
   Add('begin');
   Add('  va:=vb and vc;');
   Add('  va:=vb or vc;');
+  Add('  va:=vb xor vc;');
   Add('  va:=true and vc;');
   Add('  va:=(vb and vc) or (va and vb);');
   Add('  va:=not vb;');
@@ -2088,6 +2089,7 @@ begin
     LinesToStr([ // this.$main
     '$mod.vA = $mod.vB && $mod.vC;',
     '$mod.vA = $mod.vB || $mod.vC;',
+    '$mod.vA = $mod.vB ^ $mod.vC;',
     '$mod.vA = true && $mod.vC;',
     '$mod.vA = ($mod.vB && $mod.vC) || ($mod.vA && $mod.vB);',
     '$mod.vA = !$mod.vB;'