Repro case for product bug

Simplified version of the example. As I eventually uncovered in #1342, the issue 
is cascading redundant phis not getting rewritten.
This commit is contained in:
Joe Savona
2023-03-08 20:49:28 -08:00
parent 6d4b0c61b3
commit ff855b1d34
2 changed files with 78 additions and 0 deletions
@@ -0,0 +1,63 @@
## Input
```javascript
function Component(props) {
let x = 0;
const values = [];
const y = props.a || props.b;
values.push(y);
if (props.c) {
x = 1;
}
values.push(x);
if (props.d) {
x = 2;
}
values.push(x);
return values;
}
```
## Code
```javascript
function Component(props) {
const $ = React.unstable_useMemoCache(4);
const c_0 = $[0] !== props;
let values;
if (c_0) {
values = [];
const c_2 = $[2] !== props;
let t0;
if (c_2) {
t0 = props.a || props.b;
$[2] = props;
$[3] = t0;
} else {
t0 = $[3];
}
const y = t0;
values.push(y);
let x$0 = x;
if (props.c) {
x = 1;
}
values.push(x$0);
if (props.d) {
x = 2;
}
values.push(x);
$[0] = props;
$[1] = values;
} else {
values = $[1];
}
return values;
}
```
@@ -0,0 +1,15 @@
function Component(props) {
let x = 0;
const values = [];
const y = props.a || props.b;
values.push(y);
if (props.c) {
x = 1;
}
values.push(x);
if (props.d) {
x = 2;
}
values.push(x);
return values;
}