@samitouri / QOS-React / commits / 86b1913474

[compiler][be] Clean up bug test fixtures; evaluate more fixtures (#31812)

Test fixtures testing different compiler features (e.g. non-auto memoization) should live in separate directories. Remove bug-prefixed fixtures that have since been fixed Add test evaluator export to more fixtures

mofeiZ committed Feb 18, 2025 at 12:25 UTC 86b191347474fa98f002217ed88926efc8164c1e
43 files changed +664 -139
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/call-spread.expect.md
+19 -3
@@ -2,22 +2,31 @@
2 ## Input
3
4 ```javascript
5 +import {makeArray} from 'shared-runtime';
6 +
7 function Component(props) {
6 - const x = foo(...props.a, null, ...props.b);
8 + const x = makeArray(...props.a, null, ...props.b);
9 return x;
10 }
11
12 +export const FIXTURE_ENTRYPOINT = {
13 + fn: Component,
14 + params: [{a: [1, 2], b: [2, 3, 4]}],
15 +};
16 +
17 ```
18
19 ## Code
20
21 ```javascript
22 import { c as _c } from "react/compiler-runtime";
23 +import { makeArray } from "shared-runtime";
24 +
25 function Component(props) {
26 const $ = _c(3);
27 let t0;
28 if ($[0] !== props.a || $[1] !== props.b) {
20 - t0 = foo(...props.a, null, ...props.b);
29 + t0 = makeArray(...props.a, null, ...props.b);
30 $[0] = props.a;
31 $[1] = props.b;
32 $[2] = t0;
@@ -28,5 +37,12 @@ function Component(props) {
37 return x;
38 }
39
40 +export const FIXTURE_ENTRYPOINT = {
41 + fn: Component,
42 + params: [{ a: [1, 2], b: [2, 3, 4] }],
43 +};
44 +
45 ```
32 -
\ No newline at end of file
46 +
47 +### Eval output
48 +(kind: ok) [1,2,null,2,3,4]
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/call-spread.js
+8 -1
@@ -1,4 +1,11 @@
1 +import {makeArray} from 'shared-runtime';
2 +
3 function Component(props) {
2 - const x = foo(...props.a, null, ...props.b);
4 + const x = makeArray(...props.a, null, ...props.b);
5 return x;
6 }
7 +
8 +export const FIXTURE_ENTRYPOINT = {
9 + fn: Component,
10 + params: [{a: [1, 2], b: [2, 3, 4]}],
11 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-fun-alias-captured-mutate-2.expect.md
+35 -3
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(foo, bar) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({foo, bar}) {
8 let x = {foo};
9 let y = {bar};
10 const f0 = function () {
@@ -15,14 +17,28 @@ function component(foo, bar) {
17 return x;
18 }
19
20 +export const FIXTURE_ENTRYPOINT = {
21 + fn: Component,
22 + params: [{foo: 2, bar: 3}],
23 + sequentialRenders: [
24 + {foo: 2, bar: 3},
25 + {foo: 2, bar: 3},
26 + {foo: 2, bar: 4},
27 + {foo: 3, bar: 4},
28 + ],
29 +};
30 +
31 ```
32
33 ## Code
34
35 ```javascript
36 import { c as _c } from "react/compiler-runtime";
24 -function component(foo, bar) {
37 +import { mutate } from "shared-runtime";
38 +
39 +function Component(t0) {
40 const $ = _c(3);
41 + const { foo, bar } = t0;
42 let x;
43 if ($[0] !== bar || $[1] !== foo) {
44 x = { foo };
@@ -44,5 +60,21 @@ function component(foo, bar) {
60 return x;
61 }
62
63 +export const FIXTURE_ENTRYPOINT = {
64 + fn: Component,
65 + params: [{ foo: 2, bar: 3 }],
66 + sequentialRenders: [
67 + { foo: 2, bar: 3 },
68 + { foo: 2, bar: 3 },
69 + { foo: 2, bar: 4 },
70 + { foo: 3, bar: 4 },
71 + ],
72 +};
73 +
74 ```
48 -
\ No newline at end of file
75 +
76 +### Eval output
77 +(kind: ok) {"foo":2}
78 +{"foo":2}
79 +{"foo":2}
80 +{"foo":3}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-fun-alias-captured-mutate-2.js
+14 -1
@@ -1,4 +1,6 @@
1 -function component(foo, bar) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({foo, bar}) {
4 let x = {foo};
5 let y = {bar};
6 const f0 = function () {
@@ -10,3 +12,14 @@ function component(foo, bar) {
12 mutate(y);
13 return x;
14 }
15 +
16 +export const FIXTURE_ENTRYPOINT = {
17 + fn: Component,
18 + params: [{foo: 2, bar: 3}],
19 + sequentialRenders: [
20 + {foo: 2, bar: 3},
21 + {foo: 2, bar: 3},
22 + {foo: 2, bar: 4},
23 + {foo: 3, bar: 4},
24 + ],
25 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-fun-alias-captured-mutate-arr-2.expect.md
+35 -3
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(foo, bar) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({foo, bar}) {
8 let x = {foo};
9 let y = {bar};
10 const f0 = function () {
@@ -15,14 +17,28 @@ function component(foo, bar) {
17 return x;
18 }
19
20 +export const FIXTURE_ENTRYPOINT = {
21 + fn: Component,
22 + params: [{foo: 2, bar: 3}],
23 + sequentialRenders: [
24 + {foo: 2, bar: 3},
25 + {foo: 2, bar: 3},
26 + {foo: 2, bar: 4},
27 + {foo: 3, bar: 4},
28 + ],
29 +};
30 +
31 ```
32
33 ## Code
34
35 ```javascript
36 import { c as _c } from "react/compiler-runtime";
24 -function component(foo, bar) {
37 +import { mutate } from "shared-runtime";
38 +
39 +function Component(t0) {
40 const $ = _c(3);
41 + const { foo, bar } = t0;
42 let x;
43 if ($[0] !== bar || $[1] !== foo) {
44 x = { foo };
@@ -44,5 +60,21 @@ function component(foo, bar) {
60 return x;
61 }
62
63 +export const FIXTURE_ENTRYPOINT = {
64 + fn: Component,
65 + params: [{ foo: 2, bar: 3 }],
66 + sequentialRenders: [
67 + { foo: 2, bar: 3 },
68 + { foo: 2, bar: 3 },
69 + { foo: 2, bar: 4 },
70 + { foo: 3, bar: 4 },
71 + ],
72 +};
73 +
74 ```
48 -
\ No newline at end of file
75 +
76 +### Eval output
77 +(kind: ok) {"foo":2}
78 +{"foo":2}
79 +{"foo":2}
80 +{"foo":3}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-fun-alias-captured-mutate-arr-2.js
+14 -1
@@ -1,4 +1,6 @@
1 -function component(foo, bar) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({foo, bar}) {
4 let x = {foo};
5 let y = {bar};
6 const f0 = function () {
@@ -10,3 +12,14 @@ function component(foo, bar) {
12 mutate(y);
13 return x;
14 }
15 +
16 +export const FIXTURE_ENTRYPOINT = {
17 + fn: Component,
18 + params: [{foo: 2, bar: 3}],
19 + sequentialRenders: [
20 + {foo: 2, bar: 3},
21 + {foo: 2, bar: 3},
22 + {foo: 2, bar: 4},
23 + {foo: 3, bar: 4},
24 + ],
25 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-captured-mutate-arr.expect.md
+33 -3
@@ -2,7 +2,8 @@
2 ## Input
3
4 ```javascript
5 -function component(foo, bar) {
5 +import {mutate} from 'shared-runtime';
6 +function Component({foo, bar}) {
7 let x = {foo};
8 let y = {bar};
9 const f0 = function () {
@@ -15,14 +16,27 @@ function component(foo, bar) {
16 return y;
17 }
18
19 +export const FIXTURE_ENTRYPOINT = {
20 + fn: Component,
21 + params: [{foo: 2, bar: 3}],
22 + sequentialRenders: [
23 + {foo: 2, bar: 3},
24 + {foo: 2, bar: 3},
25 + {foo: 2, bar: 4},
26 + {foo: 3, bar: 4},
27 + ],
28 +};
29 +
30 ```
31
32 ## Code
33
34 ```javascript
35 import { c as _c } from "react/compiler-runtime";
24 -function component(foo, bar) {
36 +import { mutate } from "shared-runtime";
37 +function Component(t0) {
38 const $ = _c(3);
39 + const { foo, bar } = t0;
40 let y;
41 if ($[0] !== bar || $[1] !== foo) {
42 const x = { foo };
@@ -44,5 +58,21 @@ function component(foo, bar) {
58 return y;
59 }
60
61 +export const FIXTURE_ENTRYPOINT = {
62 + fn: Component,
63 + params: [{ foo: 2, bar: 3 }],
64 + sequentialRenders: [
65 + { foo: 2, bar: 3 },
66 + { foo: 2, bar: 3 },
67 + { foo: 2, bar: 4 },
68 + { foo: 3, bar: 4 },
69 + ],
70 +};
71 +
72 ```
48 -
\ No newline at end of file
73 +
74 +### Eval output
75 +(kind: ok) {"bar":3,"wat0":"joe"}
76 +{"bar":3,"wat0":"joe"}
77 +{"bar":4,"wat0":"joe"}
78 +{"bar":4,"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-captured-mutate-arr.js
+13 -1
@@ -1,4 +1,5 @@
1 -function component(foo, bar) {
1 +import {mutate} from 'shared-runtime';
2 +function Component({foo, bar}) {
3 let x = {foo};
4 let y = {bar};
5 const f0 = function () {
@@ -10,3 +11,14 @@ function component(foo, bar) {
11 mutate(y);
12 return y;
13 }
14 +
15 +export const FIXTURE_ENTRYPOINT = {
16 + fn: Component,
17 + params: [{foo: 2, bar: 3}],
18 + sequentialRenders: [
19 + {foo: 2, bar: 3},
20 + {foo: 2, bar: 3},
21 + {foo: 2, bar: 4},
22 + {foo: 3, bar: 4},
23 + ],
24 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-computed-mutate.expect.md
+22 -3
@@ -2,7 +2,8 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +function Component({a}) {
7 let x = {a};
8 let y = {};
9 const f0 = function () {
@@ -13,14 +14,22 @@ function component(a) {
14 return y;
15 }
16
17 +export const FIXTURE_ENTRYPOINT = {
18 + fn: Component,
19 + params: [{a: 2}],
20 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
21 +};
22 +
23 ```
24
25 ## Code
26
27 ```javascript
28 import { c as _c } from "react/compiler-runtime";
22 -function component(a) {
29 +import { mutate } from "shared-runtime";
30 +function Component(t0) {
31 const $ = _c(2);
32 + const { a } = t0;
33 let y;
34 if ($[0] !== a) {
35 const x = { a };
@@ -39,5 +48,15 @@ function component(a) {
48 return y;
49 }
50
51 +export const FIXTURE_ENTRYPOINT = {
52 + fn: Component,
53 + params: [{ a: 2 }],
54 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
55 +};
56 +
57 ```
43 -
\ No newline at end of file
58 +
59 +### Eval output
60 +(kind: ok) {"x":{"a":2},"wat0":"joe"}
61 +{"x":{"a":2},"wat0":"joe"}
62 +{"x":{"a":3},"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-computed-mutate.js
+8 -1
@@ -1,4 +1,5 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +function Component({a}) {
3 let x = {a};
4 let y = {};
5 const f0 = function () {
@@ -8,3 +9,9 @@ function component(a) {
9 mutate(y);
10 return y;
11 }
12 +
13 +export const FIXTURE_ENTRYPOINT = {
14 + fn: Component,
15 + params: [{a: 2}],
16 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
17 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-mutate.expect.md
+22 -3
@@ -2,7 +2,8 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +function Component({a}) {
7 let x = {a};
8 let y = {};
9 const f0 = function () {
@@ -13,14 +14,22 @@ function component(a) {
14 return y;
15 }
16
17 +export const FIXTURE_ENTRYPOINT = {
18 + fn: Component,
19 + params: [{a: 2}],
20 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
21 +};
22 +
23 ```
24
25 ## Code
26
27 ```javascript
28 import { c as _c } from "react/compiler-runtime";
22 -function component(a) {
29 +import { mutate } from "shared-runtime";
30 +function Component(t0) {
31 const $ = _c(2);
32 + const { a } = t0;
33 let y;
34 if ($[0] !== a) {
35 const x = { a };
@@ -39,5 +48,15 @@ function component(a) {
48 return y;
49 }
50
51 +export const FIXTURE_ENTRYPOINT = {
52 + fn: Component,
53 + params: [{ a: 2 }],
54 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
55 +};
56 +
57 ```
43 -
\ No newline at end of file
58 +
59 +### Eval output
60 +(kind: ok) {"x":{"a":2},"wat0":"joe"}
61 +{"x":{"a":2},"wat0":"joe"}
62 +{"x":{"a":3},"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-mutate.js
+8 -1
@@ -1,4 +1,5 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +function Component({a}) {
3 let x = {a};
4 let y = {};
5 const f0 = function () {
@@ -8,3 +9,9 @@ function component(a) {
9 mutate(y);
10 return y;
11 }
12 +
13 +export const FIXTURE_ENTRYPOINT = {
14 + fn: Component,
15 + params: [{a: 2}],
16 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
17 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-receiver-computed-mutate.expect.md
+24 -3
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({a}) {
8 let x = {a};
9 let y = {};
10 const f0 = function () {
@@ -14,14 +16,23 @@ function component(a) {
16 return y;
17 }
18
19 +export const FIXTURE_ENTRYPOINT = {
20 + fn: Component,
21 + params: [{a: 2}],
22 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
23 +};
24 +
25 ```
26
27 ## Code
28
29 ```javascript
30 import { c as _c } from "react/compiler-runtime";
23 -function component(a) {
31 +import { mutate } from "shared-runtime";
32 +
33 +function Component(t0) {
34 const $ = _c(2);
35 + const { a } = t0;
36 let y;
37 if ($[0] !== a) {
38 const x = { a };
@@ -41,5 +52,15 @@ function component(a) {
52 return y;
53 }
54
55 +export const FIXTURE_ENTRYPOINT = {
56 + fn: Component,
57 + params: [{ a: 2 }],
58 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
59 +};
60 +
61 ```
45 -
\ No newline at end of file
62 +
63 +### Eval output
64 +(kind: ok) {"x":{"a":2},"wat0":"joe"}
65 +{"x":{"a":2},"wat0":"joe"}
66 +{"x":{"a":3},"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-receiver-computed-mutate.js
+9 -1
@@ -1,4 +1,6 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({a}) {
4 let x = {a};
5 let y = {};
6 const f0 = function () {
@@ -9,3 +11,9 @@ function component(a) {
11 mutate(y);
12 return y;
13 }
14 +
15 +export const FIXTURE_ENTRYPOINT = {
16 + fn: Component,
17 + params: [{a: 2}],
18 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
19 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-receiver-mutate.expect.md
+24 -3
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({a}) {
8 let x = {a};
9 let y = {};
10 const f0 = function () {
@@ -14,14 +16,23 @@ function component(a) {
16 return y;
17 }
18
19 +export const FIXTURE_ENTRYPOINT = {
20 + fn: Component,
21 + params: [{a: 2}],
22 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
23 +};
24 +
25 ```
26
27 ## Code
28
29 ```javascript
30 import { c as _c } from "react/compiler-runtime";
23 -function component(a) {
31 +import { mutate } from "shared-runtime";
32 +
33 +function Component(t0) {
34 const $ = _c(2);
35 + const { a } = t0;
36 let y;
37 if ($[0] !== a) {
38 const x = { a };
@@ -41,5 +52,15 @@ function component(a) {
52 return y;
53 }
54
55 +export const FIXTURE_ENTRYPOINT = {
56 + fn: Component,
57 + params: [{ a: 2 }],
58 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
59 +};
60 +
61 ```
45 -
\ No newline at end of file
62 +
63 +### Eval output
64 +(kind: ok) {"x":{"a":2},"wat0":"joe"}
65 +{"x":{"a":2},"wat0":"joe"}
66 +{"x":{"a":3},"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-alias-receiver-mutate.js
+9 -1
@@ -1,4 +1,6 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({a}) {
4 let x = {a};
5 let y = {};
6 const f0 = function () {
@@ -9,3 +11,9 @@ function component(a) {
11 mutate(y);
12 return y;
13 }
14 +
15 +export const FIXTURE_ENTRYPOINT = {
16 + fn: Component,
17 + params: [{a: 2}],
18 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
19 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-simple-alias.expect.md
+24 -3
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({a}) {
8 let x = {a};
9 let y = {};
10 const f0 = function () {
@@ -13,14 +15,23 @@ function component(a) {
15 return y;
16 }
17
18 +export const FIXTURE_ENTRYPOINT = {
19 + fn: Component,
20 + params: [{a: 2}],
21 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
22 +};
23 +
24 ```
25
26 ## Code
27
28 ```javascript
29 import { c as _c } from "react/compiler-runtime";
22 -function component(a) {
30 +import { mutate } from "shared-runtime";
31 +
32 +function Component(t0) {
33 const $ = _c(2);
34 + const { a } = t0;
35 let y;
36 if ($[0] !== a) {
37 const x = { a };
@@ -39,5 +50,15 @@ function component(a) {
50 return y;
51 }
52
53 +export const FIXTURE_ENTRYPOINT = {
54 + fn: Component,
55 + params: [{ a: 2 }],
56 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
57 +};
58 +
59 ```
43 -
\ No newline at end of file
60 +
61 +### Eval output
62 +(kind: ok) {"a":2,"wat0":"joe"}
63 +{"a":2,"wat0":"joe"}
64 +{"a":3,"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-func-simple-alias.js
+9 -1
@@ -1,4 +1,6 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({a}) {
4 let x = {a};
5 let y = {};
6 const f0 = function () {
@@ -8,3 +10,9 @@ function component(a) {
10 mutate(y);
11 return y;
12 }
13 +
14 +export const FIXTURE_ENTRYPOINT = {
15 + fn: Component,
16 + params: [{a: 2}],
17 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
18 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-capture-ref-before-rename.expect.md
+45 -13
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(a, b) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function Component({a, b}) {
8 let z = {a};
9 (function () {
10 mutate(z);
@@ -17,14 +19,28 @@ function component(a, b) {
19 return y;
20 }
21
22 +export const FIXTURE_ENTRYPOINT = {
23 + fn: Component,
24 + params: [{a: 2, b: 3}],
25 + sequentialRenders: [
26 + {a: 2, b: 3},
27 + {a: 2, b: 3},
28 + {a: 2, b: 4},
29 + {a: 3, b: 4},
30 + ],
31 +};
32 +
33 ```
34
35 ## Code
36
37 ```javascript
38 import { c as _c } from "react/compiler-runtime";
26 -function component(a, b) {
39 +import { mutate } from "shared-runtime";
40 +
41 +function Component(t0) {
42 const $ = _c(7);
43 + const { a, b } = t0;
44 let z;
45 if ($[0] !== a) {
46 z = { a };
@@ -37,27 +53,43 @@ function component(a, b) {
53 }
54
55 let y = z;
40 - let t0;
56 + let t1;
57 if ($[2] !== b) {
42 - t0 = { b };
58 + t1 = { b };
59 $[2] = b;
44 - $[3] = t0;
60 + $[3] = t1;
61 } else {
46 - t0 = $[3];
62 + t1 = $[3];
63 }
48 - const z_0 = t0;
49 - let t1;
64 + const z_0 = t1;
65 + let t2;
66 if ($[4] !== y || $[5] !== z_0) {
51 - t1 = { y, z: z_0 };
67 + t2 = { y, z: z_0 };
68 $[4] = y;
69 $[5] = z_0;
54 - $[6] = t1;
70 + $[6] = t2;
71 } else {
56 - t1 = $[6];
72 + t2 = $[6];
73 }
58 - y = t1;
74 + y = t2;
75 return y;
76 }
77
78 +export const FIXTURE_ENTRYPOINT = {
79 + fn: Component,
80 + params: [{ a: 2, b: 3 }],
81 + sequentialRenders: [
82 + { a: 2, b: 3 },
83 + { a: 2, b: 3 },
84 + { a: 2, b: 4 },
85 + { a: 3, b: 4 },
86 + ],
87 +};
88 +
89 ```
63 -
\ No newline at end of file
90 +
91 +### Eval output
92 +(kind: ok) {"y":{"a":2,"wat0":"joe"},"z":{"b":3}}
93 +{"y":{"a":2,"wat0":"joe"},"z":{"b":3}}
94 +{"y":{"a":2,"wat0":"joe"},"z":{"b":4}}
95 +{"y":{"a":3,"wat0":"joe"},"z":{"b":4}}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-capture-ref-before-rename.js
+14 -1
@@ -1,4 +1,6 @@
1 -function component(a, b) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function Component({a, b}) {
4 let z = {a};
5 (function () {
6 mutate(z);
@@ -12,3 +14,14 @@ function component(a, b) {
14 }
15 return y;
16 }
17 +
18 +export const FIXTURE_ENTRYPOINT = {
19 + fn: Component,
20 + params: [{a: 2, b: 3}],
21 + sequentialRenders: [
22 + {a: 2, b: 3},
23 + {a: 2, b: 3},
24 + {a: 2, b: 4},
25 + {a: 3, b: 4},
26 + ],
27 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-conditional-capture-mutate.expect.md
+3 -4
@@ -2,8 +2,7 @@
2 ## Input
3
4 ```javascript
5 -// @debug
6 -function component(a, b) {
5 +function useHook(a, b) {
6 let z = {a};
7 let y = b;
8 let x = function () {
@@ -22,8 +21,8 @@ function component(a, b) {
21 ## Code
22
23 ```javascript
25 -import { c as _c } from "react/compiler-runtime"; // @debug
26 -function component(a, b) {
24 +import { c as _c } from "react/compiler-runtime";
25 +function useHook(a, b) {
26 const $ = _c(5);
27 let t0;
28 if ($[0] !== a) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-conditional-capture-mutate.js
+1 -2
@@ -1,5 +1,4 @@
1 -// @debug
2 -function component(a, b) {
1 +function useHook(a, b) {
2 let z = {a};
3 let y = b;
4 let x = function () {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-renamed-ref.expect.md
+40 -8
@@ -2,7 +2,9 @@
2 ## Input
3
4 ```javascript
5 -function component(a, b) {
5 +import {mutate} from 'shared-runtime';
6 +
7 +function useHook({a, b}) {
8 let z = {a};
9 {
10 let z = {b};
@@ -13,23 +15,37 @@ function component(a, b) {
15 return z;
16 }
17
18 +export const FIXTURE_ENTRYPOINT = {
19 + fn: useHook,
20 + params: [{a: 2, b: 3}],
21 + sequentialRenders: [
22 + {a: 2, b: 3},
23 + {a: 2, b: 3},
24 + {a: 2, b: 4},
25 + {a: 3, b: 4},
26 + ],
27 +};
28 +
29 ```
30
31 ## Code
32
33 ```javascript
34 import { c as _c } from "react/compiler-runtime";
22 -function component(a, b) {
35 +import { mutate } from "shared-runtime";
36 +
37 +function useHook(t0) {
38 const $ = _c(2);
24 - let t0;
39 + const { a, b } = t0;
40 + let t1;
41 if ($[0] !== a) {
26 - t0 = { a };
42 + t1 = { a };
43 $[0] = a;
28 - $[1] = t0;
44 + $[1] = t1;
45 } else {
30 - t0 = $[1];
46 + t1 = $[1];
47 }
32 - const z = t0;
48 + const z = t1;
49
50 const z_0 = { b };
51
@@ -37,5 +53,21 @@ function component(a, b) {
53 return z;
54 }
55
56 +export const FIXTURE_ENTRYPOINT = {
57 + fn: useHook,
58 + params: [{ a: 2, b: 3 }],
59 + sequentialRenders: [
60 + { a: 2, b: 3 },
61 + { a: 2, b: 3 },
62 + { a: 2, b: 4 },
63 + { a: 3, b: 4 },
64 + ],
65 +};
66 +
67 ```
41 -
\ No newline at end of file
68 +
69 +### Eval output
70 +(kind: ok) {"a":2}
71 +{"a":2}
72 +{"a":2}
73 +{"a":3}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-renamed-ref.js
+14 -1
@@ -1,4 +1,6 @@
1 -function component(a, b) {
1 +import {mutate} from 'shared-runtime';
2 +
3 +function useHook({a, b}) {
4 let z = {a};
5 {
6 let z = {b};
@@ -8,3 +10,14 @@ function component(a, b) {
10 }
11 return z;
12 }
13 +
14 +export const FIXTURE_ENTRYPOINT = {
15 + fn: useHook,
16 + params: [{a: 2, b: 3}],
17 + sequentialRenders: [
18 + {a: 2, b: 3},
19 + {a: 2, b: 3},
20 + {a: 2, b: 4},
21 + {a: 3, b: 4},
22 + ],
23 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-runs-inference.expect.md
+37 -19
@@ -2,11 +2,17 @@
2 ## Input
3
4 ```javascript
5 -function component(a, b) {
5 +import {Stringify} from 'shared-runtime';
6 +function Component({a, b}) {
7 let z = {a};
7 - let p = () => <Foo>{z}</Foo>;
8 + let p = () => <Stringify>{z}</Stringify>;
9 return p();
10 }
11 +export const FIXTURE_ENTRYPOINT = {
12 + fn: Component,
13 + params: [{a: 1}],
14 + sequentialRenders: [{a: 1}, {a: 1}, {a: 2}],
15 +};
16
17 ```
18
@@ -14,36 +20,48 @@ function component(a, b) {
20
21 ```javascript
22 import { c as _c } from "react/compiler-runtime";
17 -function component(a, b) {
23 +import { Stringify } from "shared-runtime";
24 +function Component(t0) {
25 const $ = _c(6);
19 - let t0;
26 + const { a } = t0;
27 + let t1;
28 if ($[0] !== a) {
21 - t0 = { a };
29 + t1 = { a };
30 $[0] = a;
23 - $[1] = t0;
31 + $[1] = t1;
32 } else {
25 - t0 = $[1];
33 + t1 = $[1];
34 }
27 - const z = t0;
28 - let t1;
35 + const z = t1;
36 + let t2;
37 if ($[2] !== z) {
30 - t1 = () => <Foo>{z}</Foo>;
38 + t2 = () => <Stringify>{z}</Stringify>;
39 $[2] = z;
32 - $[3] = t1;
40 + $[3] = t2;
41 } else {
34 - t1 = $[3];
42 + t2 = $[3];
43 }
36 - const p = t1;
37 - let t2;
44 + const p = t2;
45 + let t3;
46 if ($[4] !== p) {
39 - t2 = p();
47 + t3 = p();
48 $[4] = p;
41 - $[5] = t2;
49 + $[5] = t3;
50 } else {
43 - t2 = $[5];
51 + t3 = $[5];
52 }
45 - return t2;
53 + return t3;
54 }
55
56 +export const FIXTURE_ENTRYPOINT = {
57 + fn: Component,
58 + params: [{ a: 1 }],
59 + sequentialRenders: [{ a: 1 }, { a: 1 }, { a: 2 }],
60 +};
61 +
62 ```
49 -
\ No newline at end of file
63 +
64 +### Eval output
65 +(kind: ok) <div>{"children":{"a":1}}</div>
66 +<div>{"children":{"a":1}}</div>
67 +<div>{"children":{"a":2}}</div>
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-runs-inference.js
+8 -2
@@ -1,5 +1,11 @@
1 -function component(a, b) {
1 +import {Stringify} from 'shared-runtime';
2 +function Component({a, b}) {
3 let z = {a};
3 - let p = () => <Foo>{z}</Foo>;
4 + let p = () => <Stringify>{z}</Stringify>;
5 return p();
6 }
7 +export const FIXTURE_ENTRYPOINT = {
8 + fn: Component,
9 + params: [{a: 1}],
10 + sequentialRenders: [{a: 1}, {a: 1}, {a: 2}],
11 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-shadow-captured.expect.md
+35 -5
@@ -2,28 +2,58 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate, Stringify} from 'shared-runtime';
6 +function Component({a}) {
7 let z = {a};
8 let x = function () {
9 let z;
10 mutate(z);
11 + return z;
12 };
11 - return x;
13 + return <Stringify fn={x} shouldInvokeFns={true} />;
14 }
15
16 +export const FIXTURE_ENTRYPOINT = {
17 + fn: Component,
18 + params: [{a: 1}],
19 + sequentialRenders: [{a: 1}, {a: 1}, {a: 2}],
20 +};
21 +
22 ```
23
24 ## Code
25
26 ```javascript
19 -function component(a) {
27 +import { c as _c } from "react/compiler-runtime";
28 +import { mutate, Stringify } from "shared-runtime";
29 +function Component(t0) {
30 + const $ = _c(1);
31 +
32 const x = _temp;
21 - return x;
33 + let t1;
34 + if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
35 + t1 = <Stringify fn={x} shouldInvokeFns={true} />;
36 + $[0] = t1;
37 + } else {
38 + t1 = $[0];
39 + }
40 + return t1;
41 }
42 function _temp() {
43 let z_0;
44 mutate(z_0);
45 + return z_0;
46 }
47
48 +export const FIXTURE_ENTRYPOINT = {
49 + fn: Component,
50 + params: [{ a: 1 }],
51 + sequentialRenders: [{ a: 1 }, { a: 1 }, { a: 2 }],
52 +};
53 +
54 ```
29 -
\ No newline at end of file
55 +
56 +### Eval output
57 +(kind: ok) <div>{"fn":{"kind":"Function"},"shouldInvokeFns":true}</div>
58 +<div>{"fn":{"kind":"Function"},"shouldInvokeFns":true}</div>
59 +<div>{"fn":{"kind":"Function"},"shouldInvokeFns":true}</div>
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-function-shadow-captured.js
+10 -2
@@ -1,8 +1,16 @@
1 -function component(a) {
1 +import {mutate, Stringify} from 'shared-runtime';
2 +function Component({a}) {
3 let z = {a};
4 let x = function () {
5 let z;
6 mutate(z);
7 + return z;
8 };
7 - return x;
9 + return <Stringify fn={x} shouldInvokeFns={true} />;
10 }
11 +
12 +export const FIXTURE_ENTRYPOINT = {
13 + fn: Component,
14 + params: [{a: 1}],
15 + sequentialRenders: [{a: 1}, {a: 1}, {a: 2}],
16 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-reference-changes-type.expect.md
+22 -3
@@ -2,7 +2,8 @@
2 ## Input
3
4 ```javascript
5 -function component(a) {
5 +import {mutate} from 'shared-runtime';
6 +function Component({a}) {
7 let x = {a};
8 let y = 1;
9 (function () {
@@ -12,14 +13,22 @@ function component(a) {
13 return y;
14 }
15
16 +export const FIXTURE_ENTRYPOINT = {
17 + fn: Component,
18 + params: [{a: 2}],
19 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
20 +};
21 +
22 ```
23
24 ## Code
25
26 ```javascript
27 import { c as _c } from "react/compiler-runtime";
21 -function component(a) {
28 +import { mutate } from "shared-runtime";
29 +function Component(t0) {
30 const $ = _c(2);
31 + const { a } = t0;
32 let y;
33 if ($[0] !== a) {
34 const x = { a };
@@ -36,5 +45,15 @@ function component(a) {
45 return y;
46 }
47
48 +export const FIXTURE_ENTRYPOINT = {
49 + fn: Component,
50 + params: [{ a: 2 }],
51 + sequentialRenders: [{ a: 2 }, { a: 2 }, { a: 3 }],
52 +};
53 +
54 ```
40 -
\ No newline at end of file
55 +
56 +### Eval output
57 +(kind: ok) {"a":2,"wat0":"joe"}
58 +{"a":2,"wat0":"joe"}
59 +{"a":3,"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/capturing-reference-changes-type.js
+8 -1
@@ -1,4 +1,5 @@
1 -function component(a) {
1 +import {mutate} from 'shared-runtime';
2 +function Component({a}) {
3 let x = {a};
4 let y = 1;
5 (function () {
@@ -7,3 +8,9 @@ function component(a) {
8 mutate(y);
9 return y;
10 }
11 +
12 +export const FIXTURE_ENTRYPOINT = {
13 + fn: Component,
14 + params: [{a: 2}],
15 + sequentialRenders: [{a: 2}, {a: 2}, {a: 3}],
16 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/computed-store-alias.expect.md
+30 -3
@@ -2,7 +2,8 @@
2 ## Input
3
4 ```javascript
5 -function component(a, b) {
5 +import {mutate} from 'shared-runtime';
6 +function useHook({a, b}) {
7 let y = {a};
8 let x = {b};
9 x['y'] = y;
@@ -10,14 +11,26 @@ function component(a, b) {
11 return x;
12 }
13
14 +export const FIXTURE_ENTRYPOINT = {
15 + fn: useHook,
16 + params: [{a: 2, b: 3}],
17 + sequentialRenders: [
18 + {a: 2, b: 3},
19 + {a: 2, b: 3},
20 + {a: 3, b: 3},
21 + ],
22 +};
23 +
24 ```
25
26 ## Code
27
28 ```javascript
29 import { c as _c } from "react/compiler-runtime";
19 -function component(a, b) {
30 +import { mutate } from "shared-runtime";
31 +function useHook(t0) {
32 const $ = _c(3);
33 + const { a, b } = t0;
34 let x;
35 if ($[0] !== a || $[1] !== b) {
36 const y = { a };
@@ -33,5 +46,19 @@ function component(a, b) {
46 return x;
47 }
48
49 +export const FIXTURE_ENTRYPOINT = {
50 + fn: useHook,
51 + params: [{ a: 2, b: 3 }],
52 + sequentialRenders: [
53 + { a: 2, b: 3 },
54 + { a: 2, b: 3 },
55 + { a: 3, b: 3 },
56 + ],
57 +};
58 +
59 ```
37 -
\ No newline at end of file
60 +
61 +### Eval output
62 +(kind: ok) {"b":3,"y":{"a":2},"wat0":"joe"}
63 +{"b":3,"y":{"a":2},"wat0":"joe"}
64 +{"b":3,"y":{"a":3},"wat0":"joe"}
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/computed-store-alias.js
+12 -1
@@ -1,7 +1,18 @@
1 -function component(a, b) {
1 +import {mutate} from 'shared-runtime';
2 +function useHook({a, b}) {
3 let y = {a};
4 let x = {b};
5 x['y'] = y;
6 mutate(x);
7 return x;
8 }
9 +
10 +export const FIXTURE_ENTRYPOINT = {
11 + fn: useHook,
12 + params: [{a: 2, b: 3}],
13 + sequentialRenders: [
14 + {a: 2, b: 3},
15 + {a: 2, b: 3},
16 + {a: 3, b: 3},
17 + ],
18 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-propagation-into-function-expressions.expect.md
+24 -5
@@ -2,27 +2,37 @@
2 ## Input
3
4 ```javascript
5 +import {Stringify, identity} from 'shared-runtime';
6 +
7 function Component(props) {
8 const x = 42;
9 const onEvent = () => {
8 - console.log(x);
10 + return identity(x);
11 };
10 - return <Foo onEvent={onEvent} />;
12 + return <Stringify onEvent={onEvent} shouldInvokeFns={true} />;
13 }
14
15 +export const FIXTURE_ENTRYPOINT = {
16 + fn: Component,
17 + params: [{}],
18 + sequentialRenders: [{}, {}],
19 +};
20 +
21 ```
22
23 ## Code
24
25 ```javascript
26 import { c as _c } from "react/compiler-runtime";
27 +import { Stringify, identity } from "shared-runtime";
28 +
29 function Component(props) {
30 const $ = _c(1);
31
32 const onEvent = _temp;
33 let t0;
34 if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
25 - t0 = <Foo onEvent={onEvent} />;
35 + t0 = <Stringify onEvent={onEvent} shouldInvokeFns={true} />;
36 $[0] = t0;
37 } else {
38 t0 = $[0];
@@ -30,8 +40,17 @@ function Component(props) {
40 return t0;
41 }
42 function _temp() {
33 - console.log(42);
43 + return identity(42);
44 }
45
46 +export const FIXTURE_ENTRYPOINT = {
47 + fn: Component,
48 + params: [{}],
49 + sequentialRenders: [{}, {}],
50 +};
51 +
52 ```
37 -
\ No newline at end of file
53 +
54 +### Eval output
55 +(kind: ok) <div>{"onEvent":{"kind":"Function","result":42},"shouldInvokeFns":true}</div>
56 +<div>{"onEvent":{"kind":"Function","result":42},"shouldInvokeFns":true}</div>
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-propagation-into-function-expressions.js
+10 -2
@@ -1,7 +1,15 @@
1 +import {Stringify, identity} from 'shared-runtime';
2 +
3 function Component(props) {
4 const x = 42;
5 const onEvent = () => {
4 - console.log(x);
6 + return identity(x);
7 };
6 - return <Foo onEvent={onEvent} />;
8 + return <Stringify onEvent={onEvent} shouldInvokeFns={true} />;
9 }
10 +
11 +export const FIXTURE_ENTRYPOINT = {
12 + fn: Component,
13 + params: [{}],
14 + sequentialRenders: [{}, {}],
15 +};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-functionexpr-conditional-dep.expect.md renamed
+3 -1
@@ -90,4 +90,6 @@ export const FIXTURE_ENTRYPOINT = {
90 };
91
92 ```
93 -
\ No newline at end of file
93 +
94 +### Eval output
95 +(kind: ok) <div>{"shouldInvokeFns":true,"callback":{"kind":"Function","result":null}}</div>
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-functionexpr-conditional-dep.tsx renamed
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/reduce-reactive-deps/edge-case-merge-uncond-optional-chain-and-cond.expect.md renamed
+4 -1
@@ -85,4 +85,7 @@ export const FIXTURE_ENTRYPOINT = {
85 };
86
87 ```
88 -
\ No newline at end of file
88 +
89 +### Eval output
90 +(kind: ok) {}
91 +[[ (exception in render) TypeError: Cannot read properties of null (reading 'title_text') ]]
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/reduce-reactive-deps/edge-case-merge-uncond-optional-chain-and-cond.ts renamed
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/reduce-reactive-deps/infer-function-cond-access-not-hoisted.expect.md renamed
+5 -1
@@ -70,4 +70,8 @@ export const FIXTURE_ENTRYPOINT = {
70 };
71
72 ```
73 -
\ No newline at end of file
73 +
74 +### Eval output
75 +(kind: ok) [[ (exception in render) TypeError: Cannot read properties of null (reading 'b') ]]
76 +<div>{"fn":{"kind":"Function","result":null},"shouldInvokeFns":true}</div>
77 +<div>{"fn":{"kind":"Function","result":4},"shouldInvokeFns":true}</div>
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/reduce-reactive-deps/infer-function-cond-access-not-hoisted.tsx renamed
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/try-catch-maybe-null-dependency.expect.md renamed
+6 -1
@@ -70,4 +70,9 @@ export const FIXTURE_ENTRYPOINT = {
70 };
71
72 ```
73 -
\ No newline at end of file
73 +
74 +### Eval output
75 +(kind: ok) ["null"]
76 +[null]
77 +[null]
78 +["null"]
\ No newline at end of file
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/try-catch-maybe-null-dependency.ts renamed
compiler/packages/snap/src/SproutTodoFilter.ts
+3 -27
@@ -229,31 +229,15 @@ const skipFilter = new Set([
229 'builtin-jsx-tag-lowered-between-mutations',
230 'call-args-assignment',
231 'call-args-destructuring-assignment',
232 - 'call-spread',
232 'call-with-independently-memoizable-arg',
233 'capture-param-mutate',
235 - 'capturing-fun-alias-captured-mutate-2',
236 - 'capturing-fun-alias-captured-mutate-arr-2',
237 - 'capturing-func-alias-captured-mutate-arr',
238 - 'capturing-func-alias-computed-mutate',
239 - 'capturing-func-alias-mutate',
240 - 'capturing-func-alias-receiver-computed-mutate',
241 - 'capturing-func-alias-receiver-mutate',
242 - 'capturing-func-simple-alias',
243 - 'capturing-function-capture-ref-before-rename',
234 'capturing-function-conditional-capture-mutate',
235 'capturing-function-member-expr-arguments',
236 'capturing-function-member-expr-call',
247 - 'capturing-function-renamed-ref',
248 - 'capturing-function-runs-inference',
249 - 'capturing-function-shadow-captured',
250 - 'capturing-reference-changes-type',
237 'codegen-emit-imports-same-source',
238 'codegen-emit-make-read-only',
239 'computed-call-spread',
240 'computed-load-primitive-as-dependency',
255 - 'computed-store-alias',
256 - 'constant-propagation-into-function-expressions',
241 'destructuring-mixed-scope-declarations-and-locals',
242 'destructuring-property-inference',
243 'do-while-conditional-break',
@@ -477,23 +461,15 @@ const skipFilter = new Set([
461 'invalid-jsx-lowercase-localvar',
462
463 // bugs
480 - 'fbt/bug-fbt-plural-multiple-function-calls',
481 - 'fbt/bug-fbt-plural-multiple-mixed-call-tag',
482 - `bug-capturing-func-maybealias-captured-mutate`,
464 'bug-object-expression-computed-key-modified-during-after-construction-hoisted-sequence-expr',
484 - 'bug-invalid-hoisting-functionexpr',
465 + `bug-capturing-func-maybealias-captured-mutate`,
466 'bug-aliased-capture-aliased-mutate',
467 'bug-aliased-capture-mutate',
468 'bug-functiondecl-hoisting',
488 - 'bug-try-catch-maybe-null-dependency',
489 - 'bug-invalid-mixedreadonly-map-shape',
469 'bug-type-inference-control-flow',
491 - 'reduce-reactive-deps/bug-infer-function-cond-access-not-hoisted',
470 + 'fbt/bug-fbt-plural-multiple-function-calls',
471 + 'fbt/bug-fbt-plural-multiple-mixed-call-tag',
472 'bug-invalid-phi-as-dependency',
493 - 'reduce-reactive-deps/bug-merge-uncond-optional-chain-and-cond',
494 - 'original-reactive-scopes-fork/bug-nonmutating-capture-in-unsplittable-memo-block',
495 - 'original-reactive-scopes-fork/bug-hoisted-declaration-with-scope',
496 - 'bug-codegen-inline-iife',
473
474 // 'react-compiler-runtime' not yet supported
475 'flag-enable-emit-hook-guards',