made and and or operators short circuits
This commit is contained in:
@@ -4,9 +4,15 @@
|
||||
1 and 2;
|
||||
|
||||
#bytecode
|
||||
|
||||
|
||||
PUSHINT 1;
|
||||
JUMPIFNOTANDPOP false;
|
||||
PUSHINT 2;
|
||||
AND;
|
||||
JUMPIFNOTANDPOP false;
|
||||
PUSHTRU;
|
||||
JUMP end;
|
||||
false:
|
||||
PUSHFLS;
|
||||
end:
|
||||
POP 1;
|
||||
RETURN 0;
|
||||
@@ -6,7 +6,13 @@
|
||||
#bytecode
|
||||
|
||||
PUSHINT 1;
|
||||
JUMPIFANDPOP true;
|
||||
PUSHINT 2;
|
||||
OR;
|
||||
JUMPIFANDPOP true;
|
||||
PUSHFLS;
|
||||
JUMP end;
|
||||
true:
|
||||
PUSHTRU;
|
||||
end:
|
||||
POP 1;
|
||||
RETURN 0;
|
||||
@@ -6,12 +6,29 @@
|
||||
#bytecode
|
||||
|
||||
PUSHVAR "A";
|
||||
JUMPIFNOTANDPOP false_0;
|
||||
PUSHVAR "B";
|
||||
AND;
|
||||
JUMPIFNOTANDPOP false_0;
|
||||
PUSHTRU;
|
||||
JUMP end_0;
|
||||
false_0:
|
||||
PUSHFLS;
|
||||
end_0:
|
||||
JUMPIFANDPOP true_2;
|
||||
PUSHVAR "C";
|
||||
JUMPIFNOTANDPOP false_1;
|
||||
PUSHVAR "D";
|
||||
AND;
|
||||
OR;
|
||||
JUMPIFNOTANDPOP false_1;
|
||||
PUSHTRU;
|
||||
JUMP end_1;
|
||||
false_1:
|
||||
PUSHFLS;
|
||||
end_1:
|
||||
JUMPIFANDPOP true_2;
|
||||
PUSHFLS;
|
||||
JUMP end_2;
|
||||
true_2:
|
||||
PUSHTRU;
|
||||
end_2:
|
||||
POP 1;
|
||||
|
||||
RETURN 0;
|
||||
RETURN 0;
|
||||
@@ -4,14 +4,31 @@
|
||||
X or Y and Z or W;
|
||||
|
||||
#bytecode
|
||||
|
||||
PUSHVAR "X";
|
||||
PUSHVAR "Y";
|
||||
PUSHVAR "Z";
|
||||
AND;
|
||||
OR;
|
||||
PUSHVAR "W";
|
||||
OR;
|
||||
POP 1;
|
||||
|
||||
RETURN 0;
|
||||
PUSHVAR "X";
|
||||
JUMPIFANDPOP true_0;
|
||||
PUSHVAR "Y";
|
||||
JUMPIFNOTANDPOP false_1;
|
||||
PUSHVAR "Z";
|
||||
JUMPIFNOTANDPOP false_1;
|
||||
PUSHTRU;
|
||||
JUMP end_1;
|
||||
false_1:
|
||||
PUSHFLS;
|
||||
end_1:
|
||||
JUMPIFANDPOP true_0;
|
||||
PUSHFLS;
|
||||
JUMP end_0;
|
||||
true_0:
|
||||
PUSHTRU;
|
||||
end_0:
|
||||
JUMPIFANDPOP true_2;
|
||||
PUSHVAR "W";
|
||||
JUMPIFANDPOP true_2;
|
||||
PUSHFLS;
|
||||
JUMP end_2;
|
||||
true_2:
|
||||
PUSHTRU;
|
||||
end_2:
|
||||
POP 1;
|
||||
RETURN 0;
|
||||
Reference in New Issue
Block a user