Fix invalid removal of left side in && and || compression

See #637. This does not produce the optimal result, but it does prevent the removal of non-side-effect-free code.
This commit is contained in:
Richard van Velzen
2015-02-11 21:05:49 +01:00
parent 7b71344051
commit 992b6b9fcc
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
wrongly_optimized: {
options = {
conditionals: true,
booleans: true,
evaluate: true
};
input: {
function func() {
foo();
}
if (func() || true) {
bar();
}
}
expect: {
function func() {
foo();
}
// TODO: optimize to `func(), bar()`
(func(), 0) || bar();
}
}