[compiler][playground][tests] Standardize more pragmas (#33146)
(Almost) all pragmas are now one of the following: - `@...TestOnly`: custom pragma for test fixtures - `@<configName>` | `@<configName>:true`: enables with either true or a default enabled value - `@<configName>:<json value>`
mofeiZ committed
May 8, 2025 at 11:26 UTC
38ef6550a88f7744f5dcd4a3de7af6f13a540be5
182 files changed
+350
-454
compiler/apps/playground/__tests__/e2e/__snapshots__/page.spec.ts/compilationMode-all-output.txt
+1
-1
@@ -1,5 +1,5 @@
1
import { c as _c } from "react/compiler-runtime"; //
2
- @compilationMode(all)
2
+ @compilationMode:"all"
3
function nonReactFn() {
4
const $ = _c(1);
5
let t0;
compiler/apps/playground/__tests__/e2e/__snapshots__/page.spec.ts/compilationMode-infer-output.txt
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function nonReactFn() {
3
return {};
4
}
\ No newline at end of file
compiler/apps/playground/__tests__/e2e/page.spec.ts
+2
-2
@@ -92,7 +92,7 @@ function useFoo(propVal: {+baz: number}) {
92
},
93
{
94
name: 'compilationMode-infer',
95
- input: `// @compilationMode(infer)
95
+ input: `// @compilationMode:"infer"
96
function nonReactFn() {
97
return {};
98
}
@@ -101,7 +101,7 @@ function nonReactFn() {
101
},
102
{
103
name: 'compilationMode-all',
104
- input: `// @compilationMode(all)
104
+ input: `// @compilationMode:"all"
105
function nonReactFn() {
106
return {};
107
}
compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Options.ts
+2
-2
@@ -98,7 +98,7 @@ export type PluginOptions = {
98
* provided rules will skip compilation. To disable this feature (never bailout of compilation
99
* even if the default ESLint is suppressed), pass an empty array.
100
*/
101
- eslintSuppressionRules?: Array<string> | null | undefined;
101
+ eslintSuppressionRules: Array<string> | null | undefined;
102
103
flowSuppressions: boolean;
104
/*
@@ -106,7 +106,7 @@ export type PluginOptions = {
106
*/
107
ignoreUseNoForget: boolean;
108
109
- sources?: Array<string> | ((filename: string) => boolean) | null;
109
+ sources: Array<string> | ((filename: string) => boolean) | null;
110
111
/**
112
* The compiler has customized support for react-native-reanimated, intended as a temporary workaround.
compiler/packages/babel-plugin-react-compiler/src/Utils/TestUtils.ts
+71
-67
@@ -10,7 +10,6 @@ import {CompilerError} from '../CompilerError';
10
import {
11
CompilationMode,
12
defaultOptions,
13
- PanicThresholdOptions,
13
parsePluginOptions,
14
PluginOptions,
15
} from '../Entrypoint';
@@ -19,14 +18,24 @@ import {
18
EnvironmentConfigSchema,
19
PartialEnvironmentConfig,
20
} from '../HIR/Environment';
21
+import {Err, Ok, Result} from './Result';
22
+import {hasOwnProperty} from './utils';
23
+
24
+function tryParseTestPragmaValue(val: string): Result<unknown, unknown> {
25
+ try {
26
+ let parsedVal: unknown;
27
+ const stringMatch = /^"([^"]*)"$/.exec(val);
28
+ if (stringMatch && stringMatch.length > 1) {
29
+ parsedVal = stringMatch[1];
30
+ } else {
31
+ parsedVal = JSON.parse(val);
32
+ }
33
+ return Ok(parsedVal);
34
+ } catch (e) {
35
+ return Err(e);
36
+ }
37
+}
38
23
-/**
24
- * For test fixtures and playground only.
25
- *
26
- * Pragmas are straightforward to parse for boolean options (`:true` and
27
- * `:false`). These are 'enabled' config values for non-boolean configs (i.e.
28
- * what is used when parsing `:true`).
29
- */
39
const testComplexConfigDefaults: PartialEnvironmentConfig = {
40
validateNoCapitalizedCalls: [],
41
enableChangeDetectionForDebugging: {
@@ -84,34 +93,37 @@ const testComplexConfigDefaults: PartialEnvironmentConfig = {
93
},
94
],
95
};
87
-
96
/**
97
* For snap test fixtures and playground only.
98
*/
99
function parseConfigPragmaEnvironmentForTest(
100
pragma: string,
101
): EnvironmentConfig {
94
- const maybeConfig: any = {};
95
- // Get the defaults to programmatically check for boolean properties
96
- const defaultConfig = EnvironmentConfigSchema.parse({});
102
+ const maybeConfig: Partial<Record<keyof EnvironmentConfig, unknown>> = {};
103
104
for (const token of pragma.split(' ')) {
105
if (!token.startsWith('@')) {
106
continue;
107
}
108
const keyVal = token.slice(1);
103
- let [key, val = undefined] = keyVal.split(':');
109
+ const valIdx = keyVal.indexOf(':');
110
+ const key = valIdx === -1 ? keyVal : keyVal.slice(0, valIdx);
111
+ const val = valIdx === -1 ? undefined : keyVal.slice(valIdx + 1);
112
const isSet = val === undefined || val === 'true';
105
-
106
- if (isSet && key in testComplexConfigDefaults) {
107
- maybeConfig[key] =
108
- testComplexConfigDefaults[key as keyof PartialEnvironmentConfig];
113
+ if (!hasOwnProperty(EnvironmentConfigSchema.shape, key)) {
114
continue;
115
}
116
112
- if (key === 'customMacros' && val) {
113
- const valSplit = val.split('.');
114
- if (valSplit.length > 0) {
117
+ if (isSet && key in testComplexConfigDefaults) {
118
+ maybeConfig[key] = testComplexConfigDefaults[key];
119
+ } else if (isSet) {
120
+ maybeConfig[key] = true;
121
+ } else if (val === 'false') {
122
+ maybeConfig[key] = false;
123
+ } else if (val) {
124
+ const parsedVal = tryParseTestPragmaValue(val).unwrap();
125
+ if (key === 'customMacros' && typeof parsedVal === 'string') {
126
+ const valSplit = parsedVal.split('.');
127
const props = [];
128
for (const elt of valSplit.slice(1)) {
129
if (elt === '*') {
@@ -121,21 +133,9 @@ function parseConfigPragmaEnvironmentForTest(
133
}
134
}
135
maybeConfig[key] = [[valSplit[0], props]];
136
+ continue;
137
}
125
- continue;
126
- }
127
-
128
- if (
129
- key !== 'enableResetCacheOnSourceFileChanges' &&
130
- typeof defaultConfig[key as keyof EnvironmentConfig] !== 'boolean'
131
- ) {
132
- // skip parsing non-boolean properties
133
- continue;
134
- }
135
- if (val === undefined || val === 'true') {
136
- maybeConfig[key] = true;
137
- } else {
138
- maybeConfig[key] = false;
138
+ maybeConfig[key] = parsedVal;
139
}
140
}
141
const config = EnvironmentConfigSchema.safeParse(maybeConfig);
@@ -156,6 +156,13 @@ function parseConfigPragmaEnvironmentForTest(
156
suggestions: null,
157
});
158
}
159
+
160
+const testComplexPluginOptionDefaults: Partial<PluginOptions> = {
161
+ gating: {
162
+ source: 'ReactForgetFeatureFlag',
163
+ importSpecifierName: 'isForgetEnabled_Fixtures',
164
+ },
165
+};
166
export function parseConfigPragmaForTests(
167
pragma: string,
168
defaults: {
@@ -163,44 +170,41 @@ export function parseConfigPragmaForTests(
170
},
171
): PluginOptions {
172
const environment = parseConfigPragmaEnvironmentForTest(pragma);
166
- let compilationMode: CompilationMode = defaults.compilationMode;
167
- let panicThreshold: PanicThresholdOptions = 'all_errors';
168
- let noEmit: boolean = defaultOptions.noEmit;
173
+ const options: Record<keyof PluginOptions, unknown> = {
174
+ ...defaultOptions,
175
+ panicThreshold: 'all_errors',
176
+ compilationMode: defaults.compilationMode,
177
+ environment,
178
+ };
179
for (const token of pragma.split(' ')) {
180
if (!token.startsWith('@')) {
181
continue;
182
}
173
- switch (token) {
174
- case '@compilationMode(annotation)': {
175
- compilationMode = 'annotation';
176
- break;
177
- }
178
- case '@compilationMode(infer)': {
179
- compilationMode = 'infer';
180
- break;
181
- }
182
- case '@compilationMode(all)': {
183
- compilationMode = 'all';
184
- break;
185
- }
186
- case '@compilationMode(syntax)': {
187
- compilationMode = 'syntax';
188
- break;
189
- }
190
- case '@panicThreshold(none)': {
191
- panicThreshold = 'none';
192
- break;
193
- }
194
- case '@noEmit': {
195
- noEmit = true;
196
- break;
183
+ const keyVal = token.slice(1);
184
+ const idx = keyVal.indexOf(':');
185
+ const key = idx === -1 ? keyVal : keyVal.slice(0, idx);
186
+ const val = idx === -1 ? undefined : keyVal.slice(idx + 1);
187
+ if (!hasOwnProperty(defaultOptions, key)) {
188
+ continue;
189
+ }
190
+ const isSet = val === undefined || val === 'true';
191
+ if (isSet && key in testComplexPluginOptionDefaults) {
192
+ options[key] = testComplexPluginOptionDefaults[key];
193
+ } else if (isSet) {
194
+ options[key] = true;
195
+ } else if (val === 'false') {
196
+ options[key] = false;
197
+ } else if (val != null) {
198
+ const parsedVal = tryParseTestPragmaValue(val).unwrap();
199
+ if (key === 'target' && parsedVal === 'donotuse_meta_internal') {
200
+ options[key] = {
201
+ kind: parsedVal,
202
+ runtimeModule: 'react',
203
+ };
204
+ } else {
205
+ options[key] = parsedVal;
206
}
207
}
208
}
200
- return parsePluginOptions({
201
- environment,
202
- compilationMode,
203
- panicThreshold,
204
- noEmit,
205
- });
209
+ return parsePluginOptions(options);
210
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/arrow-function-with-implicit-return.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
const Test = () => <div />;
7
8
export const FIXTURE_ENTRYPOINT = {
@@ -15,7 +15,7 @@ export const FIXTURE_ENTRYPOINT = {
15
## Code
16
17
```javascript
18
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
18
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
19
const Test = () => {
20
const $ = _c(1);
21
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/arrow-function-with-implicit-return.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
const Test = () => <div />;
3
4
export const FIXTURE_ENTRYPOINT = {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/class-component-with-render-helper.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
class Component {
7
_renderMessage = () => {
8
const Message = () => {
@@ -22,7 +22,7 @@ class Component {
22
## Code
23
24
```javascript
25
-// @compilationMode(infer)
25
+// @compilationMode:"infer"
26
class Component {
27
_renderMessage = () => {
28
const Message = () => {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/class-component-with-render-helper.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
class Component {
3
_renderMessage = () => {
4
const Message = () => {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/codegen-instrument-forget-test.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableEmitInstrumentForget @compilationMode(annotation)
5
+// @enableEmitInstrumentForget @compilationMode:"annotation"
6
7
function Bar(props) {
8
'use forget';
@@ -24,7 +24,7 @@ function Foo(props) {
24
25
```javascript
26
import { shouldInstrument, useRenderCounter } from "react-compiler-runtime";
27
-import { c as _c } from "react/compiler-runtime"; // @enableEmitInstrumentForget @compilationMode(annotation)
27
+import { c as _c } from "react/compiler-runtime"; // @enableEmitInstrumentForget @compilationMode:"annotation"
28
29
function Bar(props) {
30
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/codegen-instrument-forget-test.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableEmitInstrumentForget @compilationMode(annotation)
1
+// @enableEmitInstrumentForget @compilationMode:"annotation"
2
3
function Bar(props) {
4
'use forget';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/component-declaration-basic.flow.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @flow @compilationMode(infer)
5
+// @flow @compilationMode:"infer"
6
export default component Foo(bar: number) {
7
return <Bar bar={bar} />;
8
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/component-declaration-basic.flow.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @flow @compilationMode(infer)
1
+// @flow @compilationMode:"infer"
2
export default component Foo(bar: number) {
3
return <Bar bar={bar} />;
4
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/conflict-codegen-instrument-forget.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableEmitInstrumentForget @compilationMode(annotation)
5
+// @enableEmitInstrumentForget @compilationMode:"annotation"
6
7
import {identity} from 'shared-runtime';
8
@@ -35,7 +35,7 @@ import {
35
shouldInstrument as _shouldInstrument3,
36
useRenderCounter,
37
} from "react-compiler-runtime";
38
-import { c as _c } from "react/compiler-runtime"; // @enableEmitInstrumentForget @compilationMode(annotation)
38
+import { c as _c } from "react/compiler-runtime"; // @enableEmitInstrumentForget @compilationMode:"annotation"
39
40
import { identity } from "shared-runtime";
41
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/conflict-codegen-instrument-forget.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableEmitInstrumentForget @compilationMode(annotation)
1
+// @enableEmitInstrumentForget @compilationMode:"annotation"
2
3
import {identity} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bailout-on-suppression-of-custom-rule.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @eslintSuppressionRules(my-app/react-rule)
5
+// @eslintSuppressionRules:["my-app","react-rule"]
6
7
/* eslint-disable my-app/react-rule */
8
function lowercasecomponent() {
@@ -19,7 +19,7 @@ function lowercasecomponent() {
19
## Error
20
21
```
22
- 1 | // @eslintSuppressionRules(my-app/react-rule)
22
+ 1 | // @eslintSuppressionRules:["my-app","react-rule"]
23
2 |
24
> 3 | /* eslint-disable my-app/react-rule */
25
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ InvalidReact: React Compiler has skipped optimizing this component because one or more React ESLint rules were disabled. React Compiler only works when your components follow all the rules of React, disabling them may result in unexpected or incorrect behavior. eslint-disable my-app/react-rule (3:3)
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bailout-on-suppression-of-custom-rule.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @eslintSuppressionRules(my-app/react-rule)
1
+// @eslintSuppressionRules:["my-app","react-rule"]
2
3
/* eslint-disable my-app/react-rule */
4
function lowercasecomponent() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-read-ref-prop-in-render-destructure.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validateRefAccessDuringRender @compilationMode(infer)
5
+// @validateRefAccessDuringRender @compilationMode:"infer"
6
function Component({ref}) {
7
const value = ref.current;
8
return <div>{value}</div>;
@@ -14,7 +14,7 @@ function Component({ref}) {
14
## Error
15
16
```
17
- 1 | // @validateRefAccessDuringRender @compilationMode(infer)
17
+ 1 | // @validateRefAccessDuringRender @compilationMode:"infer"
18
2 | function Component({ref}) {
19
> 3 | const value = ref.current;
20
| ^^^^^^^^^^^ InvalidReact: Ref values (the `current` property) may not be accessed during render. (https://react.dev/reference/react/useRef) (3:3)
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-read-ref-prop-in-render-destructure.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @validateRefAccessDuringRender @compilationMode(infer)
1
+// @validateRefAccessDuringRender @compilationMode:"infer"
2
function Component({ref}) {
3
const value = ref.current;
4
return <div>{value}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-read-ref-prop-in-render-property-load.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validateRefAccessDuringRender @compilationMode(infer)
5
+// @validateRefAccessDuringRender @compilationMode:"infer"
6
function Component(props) {
7
const value = props.ref.current;
8
return <div>{value}</div>;
@@ -14,7 +14,7 @@ function Component(props) {
14
## Error
15
16
```
17
- 1 | // @validateRefAccessDuringRender @compilationMode(infer)
17
+ 1 | // @validateRefAccessDuringRender @compilationMode:"infer"
18
2 | function Component(props) {
19
> 3 | const value = props.ref.current;
20
| ^^^^^^^^^^^^^^^^^ InvalidReact: Ref values (the `current` property) may not be accessed during render. (https://react.dev/reference/react/useRef) (3:3)
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-read-ref-prop-in-render-property-load.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @validateRefAccessDuringRender @compilationMode(infer)
1
+// @validateRefAccessDuringRender @compilationMode:"infer"
2
function Component(props) {
3
const value = props.ref.current;
4
return <div>{value}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-write-ref-prop-in-render.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validateRefAccessDuringRender @compilationMode(infer)
5
+// @validateRefAccessDuringRender @compilationMode:"infer"
6
function Component(props) {
7
const ref = props.ref;
8
ref.current = true;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-write-ref-prop-in-render.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @validateRefAccessDuringRender @compilationMode(infer)
1
+// @validateRefAccessDuringRender @compilationMode:"infer"
2
function Component(props) {
3
const ref = props.ref;
4
ref.current = true;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.todo-hoisted-function-in-unreachable-code.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component() {
7
return <Foo />;
8
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.todo-hoisted-function-in-unreachable-code.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component() {
3
return <Foo />;
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.validate-blocklisted-imports.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validateBlocklistedImports(DangerousImport)
5
+// @validateBlocklistedImports:["DangerousImport"]
6
import {foo} from 'DangerousImport';
7
import {useIdentity} from 'shared-runtime';
8
@@ -17,7 +17,7 @@ function useHook() {
17
## Error
18
19
```
20
- 1 | // @validateBlocklistedImports(DangerousImport)
20
+ 1 | // @validateBlocklistedImports:["DangerousImport"]
21
> 2 | import {foo} from 'DangerousImport';
22
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Todo: Bailing out due to blocklisted import. Import from module DangerousImport (2:2)
23
3 | import {useIdentity} from 'shared-runtime';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.validate-blocklisted-imports.ts
+1
-1
@@ -1,4 +1,4 @@
1
-// @validateBlocklistedImports(DangerousImport)
1
+// @validateBlocklistedImports:["DangerousImport"]
2
import {foo} from 'DangerousImport';
3
import {useIdentity} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/fast-refresh-dont-refresh-const-changes-prod.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
import {useEffect, useMemo, useState} from 'react';
7
import {ValidateMemoization} from 'shared-runtime';
8
@@ -43,7 +43,7 @@ export const FIXTURE_ENTRYPOINT = {
43
## Code
44
45
```javascript
46
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
46
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
47
import { useEffect, useMemo, useState } from "react";
48
import { ValidateMemoization } from "shared-runtime";
49
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/fast-refresh-dont-refresh-const-changes-prod.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
import {useEffect, useMemo, useState} from 'react';
3
import {ValidateMemoization} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/fast-refresh-refresh-on-const-changes-dev.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer) @enableResetCacheOnSourceFileChanges
5
+// @compilationMode:"infer" @enableResetCacheOnSourceFileChanges
6
import {useEffect, useMemo, useState} from 'react';
7
import {ValidateMemoization} from 'shared-runtime';
8
@@ -46,7 +46,7 @@ export const FIXTURE_ENTRYPOINT = {
46
## Code
47
48
```javascript
49
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer) @enableResetCacheOnSourceFileChanges
49
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer" @enableResetCacheOnSourceFileChanges
50
import { useEffect, useMemo, useState } from "react";
51
import { ValidateMemoization } from "shared-runtime";
52
@@ -63,12 +63,12 @@ function unsafeUpdateConst() {
63
function Component() {
64
const $ = _c(3);
65
if (
66
- $[0] !== "8d7015668f857996c3d895a7a90e3e16b8a791d5b9cd13f2c76e1c254aeedebb"
66
+ $[0] !== "a585d27423c1181e7b6305ff909458183d284658c3c3d2e3764e1128be302fd7"
67
) {
68
for (let $i = 0; $i < 3; $i += 1) {
69
$[$i] = Symbol.for("react.memo_cache_sentinel");
70
}
71
- $[0] = "8d7015668f857996c3d895a7a90e3e16b8a791d5b9cd13f2c76e1c254aeedebb";
71
+ $[0] = "a585d27423c1181e7b6305ff909458183d284658c3c3d2e3764e1128be302fd7";
72
}
73
useState(_temp);
74
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/fast-refresh-refresh-on-const-changes-dev.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer) @enableResetCacheOnSourceFileChanges
1
+// @compilationMode:"infer" @enableResetCacheOnSourceFileChanges
2
import {useEffect, useMemo, useState} from 'react';
3
import {ValidateMemoization} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/codegen-instrument-forget-gating-test.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableEmitInstrumentForget @compilationMode(annotation) @gating
5
+// @enableEmitInstrumentForget @compilationMode:"annotation" @gating
6
7
function Bar(props) {
8
'use forget';
@@ -38,7 +38,7 @@ export const FIXTURE_ENTRYPOINT = {
38
```javascript
39
import { shouldInstrument, useRenderCounter } from "react-compiler-runtime";
40
import { c as _c } from "react/compiler-runtime";
41
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @enableEmitInstrumentForget @compilationMode(annotation) @gating
41
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @enableEmitInstrumentForget @compilationMode:"annotation" @gating
42
const Bar = isForgetEnabled_Fixtures()
43
? function Bar(props) {
44
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/codegen-instrument-forget-gating-test.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableEmitInstrumentForget @compilationMode(annotation) @gating
1
+// @enableEmitInstrumentForget @compilationMode:"annotation" @gating
2
3
function Bar(props) {
4
'use forget';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-default-function.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @compilationMode(annotation)
5
+// @gating @compilationMode:"annotation"
6
export default function Bar(props) {
7
'use forget';
8
return <div>{props.bar}</div>;
@@ -28,7 +28,7 @@ export const FIXTURE_ENTRYPOINT = {
28
29
```javascript
30
import { c as _c } from "react/compiler-runtime";
31
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode(annotation)
31
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode:"annotation"
32
const Bar = isForgetEnabled_Fixtures()
33
? function Bar(props) {
34
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-default-function.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @compilationMode(annotation)
1
+// @gating @compilationMode:"annotation"
2
export default function Bar(props) {
3
'use forget';
4
return <div>{props.bar}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-function-and-default.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @compilationMode(annotation)
5
+// @gating @compilationMode:"annotation"
6
export default function Bar(props) {
7
'use forget';
8
return <div>{props.bar}</div>;
@@ -35,7 +35,7 @@ export const FIXTURE_ENTRYPOINT = {
35
36
```javascript
37
import { c as _c } from "react/compiler-runtime";
38
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode(annotation)
38
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode:"annotation"
39
const Bar = isForgetEnabled_Fixtures()
40
? function Bar(props) {
41
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-function-and-default.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @compilationMode(annotation)
1
+// @gating @compilationMode:"annotation"
2
export default function Bar(props) {
3
'use forget';
4
return <div>{props.bar}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-function.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @compilationMode(annotation)
5
+// @gating @compilationMode:"annotation"
6
export function Bar(props) {
7
'use forget';
8
return <div>{props.bar}</div>;
@@ -28,7 +28,7 @@ export const FIXTURE_ENTRYPOINT = {
28
29
```javascript
30
import { c as _c } from "react/compiler-runtime";
31
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode(annotation)
31
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode:"annotation"
32
export const Bar = isForgetEnabled_Fixtures()
33
? function Bar(props) {
34
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test-export-function.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @compilationMode(annotation)
1
+// @gating @compilationMode:"annotation"
2
export function Bar(props) {
3
'use forget';
4
return <div>{props.bar}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @compilationMode(annotation)
5
+// @gating @compilationMode:"annotation"
6
function Bar(props) {
7
'use forget';
8
return <div>{props.bar}</div>;
@@ -28,7 +28,7 @@ export const FIXTURE_ENTRYPOINT = {
28
29
```javascript
30
import { c as _c } from "react/compiler-runtime";
31
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode(annotation)
31
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode:"annotation"
32
const Bar = isForgetEnabled_Fixtures()
33
? function Bar(props) {
34
"use forget";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/gating-test.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @compilationMode(annotation)
1
+// @gating @compilationMode:"annotation"
2
function Bar(props) {
3
'use forget';
4
return <div>{props.bar}</div>;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/infer-function-expression-React-memo-gating.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @compilationMode(infer)
5
+// @gating @compilationMode:"infer"
6
import React from 'react';
7
export default React.forwardRef(function notNamedLikeAComponent(props) {
8
return <div />;
@@ -14,7 +14,7 @@ export default React.forwardRef(function notNamedLikeAComponent(props) {
14
15
```javascript
16
import { c as _c } from "react/compiler-runtime";
17
-import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode(infer)
17
+import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag"; // @gating @compilationMode:"infer"
18
import React from "react";
19
export default React.forwardRef(
20
isForgetEnabled_Fixtures()
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/infer-function-expression-React-memo-gating.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @compilationMode(infer)
1
+// @gating @compilationMode:"infer"
2
import React from 'react';
3
export default React.forwardRef(function notNamedLikeAComponent(props) {
4
return <div />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hook-declaration-basic.flow.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @flow @compilationMode(infer)
5
+// @flow @compilationMode:"infer"
6
export default hook useFoo(bar: number) {
7
return [bar];
8
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hook-declaration-basic.flow.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @flow @compilationMode(infer)
1
+// @flow @compilationMode:"infer"
2
export default hook useFoo(bar: number) {
3
return [bar];
4
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-method-no-outlining-wildcard.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @customMacros(idx.*.b)
5
+// @customMacros:"idx.*.b"
6
7
function Component(props) {
8
// outlined
@@ -31,7 +31,7 @@ function Component(props) {
31
## Code
32
33
```javascript
34
-import { c as _c } from "react/compiler-runtime"; // @customMacros(idx.*.b)
34
+import { c as _c } from "react/compiler-runtime"; // @customMacros:"idx.*.b"
35
36
function Component(props) {
37
const $ = _c(16);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-method-no-outlining-wildcard.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @customMacros(idx.*.b)
1
+// @customMacros:"idx.*.b"
2
3
function Component(props) {
4
// outlined
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-method-no-outlining.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @customMacros(idx.a)
5
+// @customMacros:"idx.a"
6
7
function Component(props) {
8
// outlined
@@ -25,7 +25,7 @@ function Component(props) {
25
## Code
26
27
```javascript
28
-import { c as _c } from "react/compiler-runtime"; // @customMacros(idx.a)
28
+import { c as _c } from "react/compiler-runtime"; // @customMacros:"idx.a"
29
30
function Component(props) {
31
const $ = _c(10);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-method-no-outlining.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @customMacros(idx.a)
1
+// @customMacros:"idx.a"
2
3
function Component(props) {
4
// outlined
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-no-outlining.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @customMacros(idx)
5
+// @customMacros:"idx"
6
import idx from 'idx';
7
8
function Component(props) {
@@ -21,7 +21,7 @@ export const FIXTURE_ENTRYPOINT = {
21
## Code
22
23
```javascript
24
-import { c as _c } from "react/compiler-runtime"; // @customMacros(idx)
24
+import { c as _c } from "react/compiler-runtime"; // @customMacros:"idx"
25
26
function Component(props) {
27
var _ref2;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/idx-no-outlining.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @customMacros(idx)
1
+// @customMacros:"idx"
2
import idx from 'idx';
3
4
function Component(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-compile-hooks-with-multiple-params.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
import {useNoAlias} from 'shared-runtime';
7
8
// This should be compiled by Forget
@@ -22,7 +22,7 @@ export const FIXTURE_ENTRYPOINT = {
22
## Code
23
24
```javascript
25
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
25
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
26
import { useNoAlias } from "shared-runtime";
27
28
// This should be compiled by Forget
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-compile-hooks-with-multiple-params.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
import {useNoAlias} from 'shared-runtime';
3
4
// This should be compiled by Forget
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-dont-compile-components-with-multiple-params.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// Takes multiple parameters - not a component!
7
function Component(foo, bar) {
8
return <div />;
@@ -18,7 +18,7 @@ export const FIXTURE_ENTRYPOINT = {
18
## Code
19
20
```javascript
21
-// @compilationMode(infer)
21
+// @compilationMode:"infer"
22
// Takes multiple parameters - not a component!
23
function Component(foo, bar) {
24
return <div />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-dont-compile-components-with-multiple-params.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// Takes multiple parameters - not a component!
3
function Component(foo, bar) {
4
return <div />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.callsite-in-non-react-fn-default-import.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @compilationMode(infer) @panicThreshold(none)
5
+// @inferEffectDependencies @compilationMode:"infer" @panicThreshold:"none"
6
import useMyEffect from 'useEffectWrapper';
7
8
function nonReactFn(arg) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.callsite-in-non-react-fn-default-import.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @compilationMode(infer) @panicThreshold(none)
1
+// @inferEffectDependencies @compilationMode:"infer" @panicThreshold:"none"
2
import useMyEffect from 'useEffectWrapper';
3
4
function nonReactFn(arg) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.callsite-in-non-react-fn.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @compilationMode(infer) @panicThreshold(none)
5
+// @inferEffectDependencies @compilationMode:"infer" @panicThreshold:"none"
6
import {useEffect} from 'react';
7
8
function nonReactFn(arg) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.callsite-in-non-react-fn.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @compilationMode(infer) @panicThreshold(none)
1
+// @inferEffectDependencies @compilationMode:"infer" @panicThreshold:"none"
2
import {useEffect} from 'react';
3
4
function nonReactFn(arg) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.non-inlined-effect-fn.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useEffect} from 'react';
7
8
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.non-inlined-effect-fn.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useEffect} from 'react';
3
4
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.todo-import-default-property-useEffect.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import React from 'react';
7
8
function NonReactiveDepInEffect() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.todo-import-default-property-useEffect.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import React from 'react';
3
4
function NonReactiveDepInEffect() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.todo-syntax.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useSpecialEffect} from 'shared-runtime';
7
8
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.todo-syntax.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useSpecialEffect} from 'shared-runtime';
3
4
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.use-no-memo.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useEffect} from 'react';
7
8
function Component({propVal}) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/error.use-no-memo.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useEffect} from 'react';
3
4
function Component({propVal}) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect-granular-access.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useEffect} from 'react';
7
import {print} from 'shared-runtime';
8
@@ -20,7 +20,7 @@ function Component({foo}) {
20
## Code
21
22
```javascript
23
-// @inferEffectDependencies @panicThreshold(none)
23
+// @inferEffectDependencies @panicThreshold:"none"
24
import { useEffect } from "react";
25
import { print } from "shared-runtime";
26
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect-granular-access.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useEffect} from 'react';
3
import {print} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect-ref-access.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
7
import {useEffect, useRef} from 'react';
8
import {print} from 'shared-runtime';
@@ -19,7 +19,7 @@ function Component({arrRef}) {
19
## Code
20
21
```javascript
22
-// @inferEffectDependencies @panicThreshold(none)
22
+// @inferEffectDependencies @panicThreshold:"none"
23
24
import { useEffect, useRef } from "react";
25
import { print } from "shared-runtime";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect-ref-access.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
3
import {useEffect, useRef} from 'react';
4
import {print} from 'shared-runtime';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useEffect} from 'react';
7
8
function Component({foo}) {
@@ -17,7 +17,7 @@ function Component({foo}) {
17
## Code
18
19
```javascript
20
-// @inferEffectDependencies @panicThreshold(none)
20
+// @inferEffectDependencies @panicThreshold:"none"
21
import { useEffect } from "react";
22
23
function Component(t0) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-effect-dependencies/bailout-retry/mutate-after-useeffect.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useEffect} from 'react';
3
4
function Component({foo}) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-React-memo.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
React.memo(props => {
7
return <div />;
8
});
@@ -12,7 +12,7 @@ React.memo(props => {
12
## Code
13
14
```javascript
15
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
15
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
16
React.memo((props) => {
17
const $ = _c(1);
18
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-React-memo.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
React.memo(props => {
3
return <div />;
4
});
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-assignment.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
const Component = props => {
7
return <div />;
8
};
@@ -12,7 +12,7 @@ const Component = props => {
12
## Code
13
14
```javascript
15
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
15
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
16
const Component = (props) => {
17
const $ = _c(1);
18
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-assignment.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
const Component = props => {
3
return <div />;
4
};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-expression-component.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
7
const Component = function ComponentName(props) {
8
return <Foo />;
@@ -13,7 +13,7 @@ const Component = function ComponentName(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
16
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
17
18
const Component = function ComponentName(props) {
19
const $ = _c(1);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-expression-component.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
3
const Component = function ComponentName(props) {
4
return <Foo />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-forwardRef.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
React.forwardRef(props => {
7
return <div />;
8
});
@@ -12,7 +12,7 @@ React.forwardRef(props => {
12
## Code
13
14
```javascript
15
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
15
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
16
React.forwardRef((props) => {
17
const $ = _c(1);
18
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-function-forwardRef.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
React.forwardRef(props => {
3
return <div />;
4
});
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-hook-call.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component(props) {
7
const [state, _] = useState(null);
8
return [state];
@@ -13,7 +13,7 @@ function Component(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
16
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
17
function Component(props) {
18
const $ = _c(2);
19
const [state] = useState(null);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-hook-call.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component(props) {
3
const [state, _] = useState(null);
4
return [state];
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-jsx.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component(props) {
7
return <div />;
8
}
@@ -12,7 +12,7 @@ function Component(props) {
12
## Code
13
14
```javascript
15
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
15
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
16
function Component(props) {
17
const $ = _c(1);
18
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-jsx.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component(props) {
3
return <div />;
4
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-ref-arg.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
7
function Foo({}, ref) {
8
return <div ref={ref} />;
@@ -18,7 +18,7 @@ export const FIXTURE_ENTRYPOINT = {
18
## Code
19
20
```javascript
21
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
21
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
22
23
function Foo(t0, ref) {
24
const $ = _c(2);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-component-with-ref-arg.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
3
function Foo({}, ref) {
4
return <div ref={ref} />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-hook-with-hook-call.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function useStateValue(props) {
7
const [state, _] = useState(null);
8
return [state];
@@ -13,7 +13,7 @@ function useStateValue(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
16
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
17
function useStateValue(props) {
18
const $ = _c(2);
19
const [state] = useState(null);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-hook-with-hook-call.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function useStateValue(props) {
3
const [state, _] = useState(null);
4
return [state];
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-hook-with-jsx.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function useDiv(props) {
7
return <div />;
8
}
@@ -12,7 +12,7 @@ function useDiv(props) {
12
## Code
13
14
```javascript
15
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
15
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
16
function useDiv(props) {
17
const $ = _c(1);
18
let t0;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-functions-hook-with-jsx.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function useDiv(props) {
3
return <div />;
4
}
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
7
import {Stringify} from 'shared-runtime';
8
@@ -27,7 +27,7 @@ export const FIXTURE_ENTRYPOINT = {
27
## Code
28
29
```javascript
30
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
30
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
31
32
import { Stringify } from "shared-runtime";
33
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.jsx
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
3
import {Stringify} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-annot.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
import {useIdentity, identity} from 'shared-runtime';
7
8
function Component(fakeProps: number) {
@@ -20,7 +20,7 @@ export const FIXTURE_ENTRYPOINT = {
20
## Code
21
22
```javascript
23
-// @compilationMode(infer)
23
+// @compilationMode:"infer"
24
import { useIdentity, identity } from "shared-runtime";
25
26
function Component(fakeProps: number) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-annot.ts
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
import {useIdentity, identity} from 'shared-runtime';
3
4
function Component(fakeProps: number) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-nested-jsx.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component(props) {
7
const result = f(props);
8
function helper() {
@@ -26,7 +26,7 @@ export const FIXTURE_ENTRYPOINT = {
26
## Code
27
28
```javascript
29
-// @compilationMode(infer)
29
+// @compilationMode:"infer"
30
function Component(props) {
31
const result = f(props);
32
function helper() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-nested-jsx.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component(props) {
3
const result = f(props);
4
function helper() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-obj-return.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component(props) {
7
const ignore = <foo />;
8
return {foo: f(props)};
@@ -22,7 +22,7 @@ export const FIXTURE_ENTRYPOINT = {
22
## Code
23
24
```javascript
25
-// @compilationMode(infer)
25
+// @compilationMode:"infer"
26
function Component(props) {
27
const ignore = <foo />;
28
return { foo: f(props) };
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-no-component-obj-return.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component(props) {
3
const ignore = <foo />;
4
return {foo: f(props)};
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-skip-components-without-hooks-or-jsx.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// This component is skipped bc it doesn't call any hooks or
7
// use JSX:
8
function Component(props) {
@@ -14,7 +14,7 @@ function Component(props) {
14
## Code
15
16
```javascript
17
-// @compilationMode(infer)
17
+// @compilationMode:"infer"
18
// This component is skipped bc it doesn't call any hooks or
19
// use JSX:
20
function Component(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-skip-components-without-hooks-or-jsx.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// This component is skipped bc it doesn't call any hooks or
3
// use JSX:
4
function Component(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-jsx-in-catch-in-outer-try-with-catch.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateNoJSXInTryStatements
5
+// @loggerTestOnly @validateNoJSXInTryStatements
6
import {identity} from 'shared-runtime';
7
8
function Component(props) {
@@ -25,7 +25,7 @@ function Component(props) {
25
## Code
26
27
```javascript
28
-import { c as _c } from "react/compiler-runtime"; // @logger @validateNoJSXInTryStatements
28
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateNoJSXInTryStatements
29
import { identity } from "shared-runtime";
30
31
function Component(props) {
@@ -65,8 +65,8 @@ function Component(props) {
65
## Logs
66
67
```
68
-{"kind":"CompileError","detail":{"options":{"reason":"Unexpected JSX element within a try statement. To catch errors in rendering a given component, wrap that component in an error boundary. (https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary)","description":null,"severity":"InvalidReact","loc":{"start":{"line":11,"column":11,"index":214},"end":{"line":11,"column":32,"index":235},"filename":"invalid-jsx-in-catch-in-outer-try-with-catch.ts"}}},"fnLoc":null}
69
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":83},"end":{"line":17,"column":1,"index":290},"filename":"invalid-jsx-in-catch-in-outer-try-with-catch.ts"},"fnName":"Component","memoSlots":4,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
68
+{"kind":"CompileError","detail":{"options":{"reason":"Unexpected JSX element within a try statement. To catch errors in rendering a given component, wrap that component in an error boundary. (https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary)","description":null,"severity":"InvalidReact","loc":{"start":{"line":11,"column":11,"index":222},"end":{"line":11,"column":32,"index":243},"filename":"invalid-jsx-in-catch-in-outer-try-with-catch.ts"}}},"fnLoc":null}
69
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":91},"end":{"line":17,"column":1,"index":298},"filename":"invalid-jsx-in-catch-in-outer-try-with-catch.ts"},"fnName":"Component","memoSlots":4,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
70
```
71
72
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-jsx-in-catch-in-outer-try-with-catch.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateNoJSXInTryStatements
1
+// @loggerTestOnly @validateNoJSXInTryStatements
2
import {identity} from 'shared-runtime';
3
4
function Component(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-jsx-in-try-with-catch.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateNoJSXInTryStatements
5
+// @loggerTestOnly @validateNoJSXInTryStatements
6
function Component(props) {
7
let el;
8
try {
@@ -18,7 +18,7 @@ function Component(props) {
18
## Code
19
20
```javascript
21
-import { c as _c } from "react/compiler-runtime"; // @logger @validateNoJSXInTryStatements
21
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateNoJSXInTryStatements
22
function Component(props) {
23
const $ = _c(1);
24
let el;
@@ -42,8 +42,8 @@ function Component(props) {
42
## Logs
43
44
```
45
-{"kind":"CompileError","detail":{"options":{"reason":"Unexpected JSX element within a try statement. To catch errors in rendering a given component, wrap that component in an error boundary. (https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary)","description":null,"severity":"InvalidReact","loc":{"start":{"line":5,"column":9,"index":96},"end":{"line":5,"column":16,"index":103},"filename":"invalid-jsx-in-try-with-catch.ts"}}},"fnLoc":null}
46
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":41},"end":{"line":10,"column":1,"index":152},"filename":"invalid-jsx-in-try-with-catch.ts"},"fnName":"Component","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
45
+{"kind":"CompileError","detail":{"options":{"reason":"Unexpected JSX element within a try statement. To catch errors in rendering a given component, wrap that component in an error boundary. (https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary)","description":null,"severity":"InvalidReact","loc":{"start":{"line":5,"column":9,"index":104},"end":{"line":5,"column":16,"index":111},"filename":"invalid-jsx-in-try-with-catch.ts"}}},"fnLoc":null}
46
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":49},"end":{"line":10,"column":1,"index":160},"filename":"invalid-jsx-in-try-with-catch.ts"},"fnName":"Component","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
47
```
48
49
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-jsx-in-try-with-catch.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateNoJSXInTryStatements
1
+// @loggerTestOnly @validateNoJSXInTryStatements
2
function Component(props) {
3
let el;
4
try {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-setState-in-useEffect-transitive.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateNoSetStateInPassiveEffects
5
+// @loggerTestOnly @validateNoSetStateInPassiveEffects
6
import {useEffect, useState} from 'react';
7
8
function Component() {
@@ -24,7 +24,7 @@ function Component() {
24
## Code
25
26
```javascript
27
-import { c as _c } from "react/compiler-runtime"; // @logger @validateNoSetStateInPassiveEffects
27
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateNoSetStateInPassiveEffects
28
import { useEffect, useState } from "react";
29
30
function Component() {
@@ -65,8 +65,8 @@ function _temp(s) {
65
## Logs
66
67
```
68
-{"kind":"CompileError","detail":{"options":{"reason":"Calling setState directly within a useEffect causes cascading renders and is not recommended. Consider alternatives to useEffect. (https://react.dev/learn/you-might-not-need-an-effect)","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":13,"column":4,"index":264},"end":{"line":13,"column":5,"index":265},"filename":"invalid-setState-in-useEffect-transitive.ts","identifierName":"g"}}},"fnLoc":null}
69
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":91},"end":{"line":16,"column":1,"index":292},"filename":"invalid-setState-in-useEffect-transitive.ts"},"fnName":"Component","memoSlots":2,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
68
+{"kind":"CompileError","detail":{"options":{"reason":"Calling setState directly within a useEffect causes cascading renders and is not recommended. Consider alternatives to useEffect. (https://react.dev/learn/you-might-not-need-an-effect)","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":13,"column":4,"index":272},"end":{"line":13,"column":5,"index":273},"filename":"invalid-setState-in-useEffect-transitive.ts","identifierName":"g"}}},"fnLoc":null}
69
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":99},"end":{"line":16,"column":1,"index":300},"filename":"invalid-setState-in-useEffect-transitive.ts"},"fnName":"Component","memoSlots":2,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
70
```
71
72
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-setState-in-useEffect-transitive.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateNoSetStateInPassiveEffects
1
+// @loggerTestOnly @validateNoSetStateInPassiveEffects
2
import {useEffect, useState} from 'react';
3
4
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-setState-in-useEffect.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateNoSetStateInPassiveEffects
5
+// @loggerTestOnly @validateNoSetStateInPassiveEffects
6
import {useEffect, useState} from 'react';
7
8
function Component() {
@@ -18,7 +18,7 @@ function Component() {
18
## Code
19
20
```javascript
21
-import { c as _c } from "react/compiler-runtime"; // @logger @validateNoSetStateInPassiveEffects
21
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateNoSetStateInPassiveEffects
22
import { useEffect, useState } from "react";
23
24
function Component() {
@@ -45,8 +45,8 @@ function _temp(s) {
45
## Logs
46
47
```
48
-{"kind":"CompileError","detail":{"options":{"reason":"Calling setState directly within a useEffect causes cascading renders and is not recommended. Consider alternatives to useEffect. (https://react.dev/learn/you-might-not-need-an-effect)","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":7,"column":4,"index":179},"end":{"line":7,"column":12,"index":187},"filename":"invalid-setState-in-useEffect.ts","identifierName":"setState"}}},"fnLoc":null}
49
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":91},"end":{"line":10,"column":1,"index":224},"filename":"invalid-setState-in-useEffect.ts"},"fnName":"Component","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
48
+{"kind":"CompileError","detail":{"options":{"reason":"Calling setState directly within a useEffect causes cascading renders and is not recommended. Consider alternatives to useEffect. (https://react.dev/learn/you-might-not-need-an-effect)","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":7,"column":4,"index":187},"end":{"line":7,"column":12,"index":195},"filename":"invalid-setState-in-useEffect.ts","identifierName":"setState"}}},"fnLoc":null}
49
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":4,"column":0,"index":99},"end":{"line":10,"column":1,"index":232},"filename":"invalid-setState-in-useEffect.ts"},"fnName":"Component","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
50
```
51
52
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/invalid-setState-in-useEffect.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateNoSetStateInPassiveEffects
1
+// @loggerTestOnly @validateNoSetStateInPassiveEffects
2
import {useEffect, useState} from 'react';
3
4
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/log-pruned-memoization.expect.md
+4
-4
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger
5
+// @loggerTestOnly
6
import {createContext, use, useState} from 'react';
7
import {
8
Stringify,
@@ -56,7 +56,7 @@ export const FIXTURE_ENTRYPOINT = {
56
## Code
57
58
```javascript
59
-import { c as _c } from "react/compiler-runtime"; // @logger
59
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly
60
import { createContext, use, useState } from "react";
61
import {
62
Stringify,
@@ -129,8 +129,8 @@ export const FIXTURE_ENTRYPOINT = {
129
## Logs
130
131
```
132
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":10,"column":0,"index":159},"end":{"line":33,"column":1,"index":903},"filename":"log-pruned-memoization.ts"},"fnName":"Component","memoSlots":6,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":2,"prunedMemoValues":3}
133
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":37,"column":0,"index":939},"end":{"line":43,"column":1,"index":1037},"filename":"log-pruned-memoization.ts"},"fnName":"Wrapper","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
132
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":10,"column":0,"index":167},"end":{"line":33,"column":1,"index":911},"filename":"log-pruned-memoization.ts"},"fnName":"Component","memoSlots":6,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":2,"prunedMemoValues":3}
133
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":37,"column":0,"index":947},"end":{"line":43,"column":1,"index":1045},"filename":"log-pruned-memoization.ts"},"fnName":"Wrapper","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
134
```
135
136
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/log-pruned-memoization.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger
1
+// @loggerTestOnly
2
import {createContext, use, useState} from 'react';
3
import {
4
Stringify,
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/meta-isms/repro-cx-assigned-to-temporary.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
5
+// @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros:"cx"
6
import {identity} from 'shared-runtime';
7
8
const DARK = 'dark';
@@ -47,7 +47,7 @@ export const FIXTURE_ENTRYPOINT = {
47
## Code
48
49
```javascript
50
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
50
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros:"cx"
51
import { identity } from "shared-runtime";
52
53
const DARK = "dark";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/meta-isms/repro-cx-assigned-to-temporary.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
1
+// @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros:"cx"
2
import {identity} from 'shared-runtime';
3
4
const DARK = 'dark';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/meta-isms/repro-cx-namespace-assigned-to-temporary.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
5
+// @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
6
import {identity} from 'shared-runtime';
7
8
const DARK = 'dark';
@@ -49,7 +49,7 @@ export const FIXTURE_ENTRYPOINT = {
49
## Code
50
51
```javascript
52
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
52
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
53
import { identity } from "shared-runtime";
54
55
const DARK = "dark";
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/meta-isms/repro-cx-namespace-assigned-to-temporary.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer) @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
1
+// @compilationMode:"infer" @enableAssumeHooksFollowRulesOfReact:false @customMacros(cx)
2
import {identity} from 'shared-runtime';
3
4
const DARK = 'dark';
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/multiple-components-first-is-invalid.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @panicThreshold(none)
5
+// @panicThreshold:"none"
6
import {useHook} from 'shared-runtime';
7
8
function InvalidComponent(props) {
@@ -21,7 +21,7 @@ function ValidComponent(props) {
21
## Code
22
23
```javascript
24
-import { c as _c } from "react/compiler-runtime"; // @panicThreshold(none)
24
+import { c as _c } from "react/compiler-runtime"; // @panicThreshold:"none"
25
import { useHook } from "shared-runtime";
26
27
function InvalidComponent(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/multiple-components-first-is-invalid.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @panicThreshold(none)
1
+// @panicThreshold:"none"
2
import {useHook} from 'shared-runtime';
3
4
function InvalidComponent(props) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/props-method-dependency.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
import {useMemo} from 'react';
7
import {ValidateMemoization} from 'shared-runtime';
8
@@ -24,7 +24,7 @@ export const FIXTURE_ENTRYPOINT = {
24
## Code
25
26
```javascript
27
-import { c as _c } from "react/compiler-runtime"; // @compilationMode(infer)
27
+import { c as _c } from "react/compiler-runtime"; // @compilationMode:"infer"
28
import { useMemo } from "react";
29
import { ValidateMemoization } from "shared-runtime";
30
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/props-method-dependency.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
import {useMemo} from 'react';
3
import {ValidateMemoization} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-dont-add-hook-guards-on-retry.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @flow @enableEmitHookGuards @panicThreshold(none) @enableFire
5
+// @flow @enableEmitHookGuards @panicThreshold:"none" @enableFire
6
7
component Foo(useDynamicHook) {
8
useDynamicHook();
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-dont-add-hook-guards-on-retry.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @flow @enableEmitHookGuards @panicThreshold(none) @enableFire
1
+// @flow @enableEmitHookGuards @panicThreshold:"none" @enableFire
2
3
component Foo(useDynamicHook) {
4
useDynamicHook();
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-retain-source-when-bailout.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @panicThreshold(none)
5
+// @panicThreshold:"none"
6
import {useNoAlias} from 'shared-runtime';
7
8
const cond = true;
@@ -27,7 +27,7 @@ export const FIXTURE_ENTRYPOINT = {
27
## Code
28
29
```javascript
30
-// @panicThreshold(none)
30
+// @panicThreshold:"none"
31
import { useNoAlias } from "shared-runtime";
32
33
const cond = true;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-retain-source-when-bailout.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @panicThreshold(none)
1
+// @panicThreshold:"none"
2
import {useNoAlias} from 'shared-runtime';
3
4
const cond = true;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/error.invalid-hook-in-nested-function-expression-object-expression.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component() {
7
'use memo';
8
const f = () => {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/error.invalid-hook-in-nested-function-expression-object-expression.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component() {
3
'use memo';
4
const f = () => {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/error.invalid-hook-in-nested-object-method.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
function Component() {
7
'use memo';
8
const x = {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/error.invalid-hook-in-nested-object-method.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
function Component() {
3
'use memo';
4
const x = {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-0592bd574811.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// Regression test for some internal code.
7
// This shows how the "callback rule" is more relaxed,
8
// and doesn't kick in unless we're confident we're in
@@ -20,7 +20,7 @@ function makeListener(instance) {
20
## Code
21
22
```javascript
23
-// @compilationMode(infer)
23
+// @compilationMode:"infer"
24
// Regression test for some internal code.
25
// This shows how the "callback rule" is more relaxed,
26
// and doesn't kick in unless we're confident we're in
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-0592bd574811.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// Regression test for some internal code.
3
// This shows how the "callback rule" is more relaxed,
4
// and doesn't kick in unless we're confident we're in
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-2bec02ac982b.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// Valid because hooks can call hooks.
7
function createHook() {
8
return function useHook() {
@@ -16,7 +16,7 @@ function createHook() {
16
## Code
17
18
```javascript
19
-// @compilationMode(infer)
19
+// @compilationMode:"infer"
20
// Valid because hooks can call hooks.
21
function createHook() {
22
return function useHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-2bec02ac982b.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// Valid because hooks can call hooks.
3
function createHook() {
4
return function useHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-33a6e23edac1.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// Valid because hooks can use hooks.
7
function createHook() {
8
return function useHookWithHook() {
@@ -15,7 +15,7 @@ function createHook() {
15
## Code
16
17
```javascript
18
-// @compilationMode(infer)
18
+// @compilationMode:"infer"
19
// Valid because hooks can use hooks.
20
function createHook() {
21
return function useHookWithHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-33a6e23edac1.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// Valid because hooks can use hooks.
3
function createHook() {
4
return function useHookWithHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-8f1c2c3f71c9.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// Valid because components can use hooks.
7
function createComponentWithHook() {
8
return function ComponentWithHook() {
@@ -15,7 +15,7 @@ function createComponentWithHook() {
15
## Code
16
17
```javascript
18
-// @compilationMode(infer)
18
+// @compilationMode:"infer"
19
// Valid because components can use hooks.
20
function createComponentWithHook() {
21
return function ComponentWithHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-8f1c2c3f71c9.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// Valid because components can use hooks.
3
function createComponentWithHook() {
4
return function ComponentWithHook() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-fe6042f7628b.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(infer)
5
+// @compilationMode:"infer"
6
// This is valid because "use"-prefixed functions called in
7
// unnamed function arguments are not assumed to be hooks.
8
unknownFunction(function (foo, bar) {
@@ -16,7 +16,7 @@ unknownFunction(function (foo, bar) {
16
## Code
17
18
```javascript
19
-// @compilationMode(infer)
19
+// @compilationMode:"infer"
20
// This is valid because "use"-prefixed functions called in
21
// unnamed function arguments are not assumed to be hooks.
22
unknownFunction(function (foo, bar) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/rules-of-hooks/rules-of-hooks-fe6042f7628b.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(infer)
1
+// @compilationMode:"infer"
2
// This is valid because "use"-prefixed functions called in
3
// unnamed function arguments are not assumed to be hooks.
4
unknownFunction(function (foo, bar) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/should-bailout-without-compilation-annotation-mode.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @panicThreshold(none) @compilationMode(annotation)
5
+// @gating @panicThreshold:"none" @compilationMode:"annotation"
6
let someGlobal = 'joe';
7
8
function Component() {
@@ -21,7 +21,7 @@ export const FIXTURE_ENTRYPOINT = {
21
## Code
22
23
```javascript
24
-// @gating @panicThreshold(none) @compilationMode(annotation)
24
+// @gating @panicThreshold:"none" @compilationMode:"annotation"
25
let someGlobal = "joe";
26
27
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/should-bailout-without-compilation-annotation-mode.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @panicThreshold(none) @compilationMode(annotation)
1
+// @gating @panicThreshold:"none" @compilationMode:"annotation"
2
let someGlobal = 'joe';
3
4
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/should-bailout-without-compilation-infer-mode.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @gating @panicThreshold(none) @compilationMode(infer)
5
+// @gating @panicThreshold:"none" @compilationMode:"infer"
6
let someGlobal = 'joe';
7
8
function Component() {
@@ -20,7 +20,7 @@ export const FIXTURE_ENTRYPOINT = {
20
## Code
21
22
```javascript
23
-// @gating @panicThreshold(none) @compilationMode(infer)
23
+// @gating @panicThreshold:"none" @compilationMode:"infer"
24
let someGlobal = "joe";
25
26
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/should-bailout-without-compilation-infer-mode.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @gating @panicThreshold(none) @compilationMode(infer)
1
+// @gating @panicThreshold:"none" @compilationMode:"infer"
2
let someGlobal = 'joe';
3
4
function Component() {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-conditionally-assigned-dynamically-constructed-component-in-render.expect.md
+5
-5
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateStaticComponents
5
+// @loggerTestOnly @validateStaticComponents
6
function Example(props) {
7
let Component;
8
if (props.cond) {
@@ -18,7 +18,7 @@ function Example(props) {
18
## Code
19
20
```javascript
21
-import { c as _c } from "react/compiler-runtime"; // @logger @validateStaticComponents
21
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateStaticComponents
22
function Example(props) {
23
const $ = _c(3);
24
let Component;
@@ -50,9 +50,9 @@ function Example(props) {
50
## Logs
51
52
```
53
-{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":9,"column":10,"index":194},"end":{"line":9,"column":19,"index":203},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"}}},"fnLoc":null}
54
-{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":5,"column":16,"index":116},"end":{"line":5,"column":33,"index":133},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"}}},"fnLoc":null}
55
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":37},"end":{"line":10,"column":1,"index":209},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"},"fnName":"Example","memoSlots":3,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
53
+{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":9,"column":10,"index":202},"end":{"line":9,"column":19,"index":211},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"}}},"fnLoc":null}
54
+{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":5,"column":16,"index":124},"end":{"line":5,"column":33,"index":141},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"}}},"fnLoc":null}
55
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":45},"end":{"line":10,"column":1,"index":217},"filename":"invalid-conditionally-assigned-dynamically-constructed-component-in-render.ts"},"fnName":"Example","memoSlots":3,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
56
```
57
58
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-conditionally-assigned-dynamically-constructed-component-in-render.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateStaticComponents
1
+// @loggerTestOnly @validateStaticComponents
2
function Example(props) {
3
let Component;
4
if (props.cond) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-construct-component-in-render.expect.md
+5
-5
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateStaticComponents
5
+// @loggerTestOnly @validateStaticComponents
6
function Example(props) {
7
const Component = createComponent();
8
return <Component />;
@@ -13,7 +13,7 @@ function Example(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @logger @validateStaticComponents
16
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateStaticComponents
17
function Example(props) {
18
const $ = _c(1);
19
let t0;
@@ -32,9 +32,9 @@ function Example(props) {
32
## Logs
33
34
```
35
-{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":112},"end":{"line":4,"column":19,"index":121},"filename":"invalid-dynamically-construct-component-in-render.ts"}}},"fnLoc":null}
36
-{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":83},"end":{"line":3,"column":37,"index":100},"filename":"invalid-dynamically-construct-component-in-render.ts"}}},"fnLoc":null}
37
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":37},"end":{"line":5,"column":1,"index":127},"filename":"invalid-dynamically-construct-component-in-render.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
35
+{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":120},"end":{"line":4,"column":19,"index":129},"filename":"invalid-dynamically-construct-component-in-render.ts"}}},"fnLoc":null}
36
+{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":91},"end":{"line":3,"column":37,"index":108},"filename":"invalid-dynamically-construct-component-in-render.ts"}}},"fnLoc":null}
37
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":45},"end":{"line":5,"column":1,"index":135},"filename":"invalid-dynamically-construct-component-in-render.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
38
```
39
40
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-construct-component-in-render.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateStaticComponents
1
+// @loggerTestOnly @validateStaticComponents
2
function Example(props) {
3
const Component = createComponent();
4
return <Component />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-function.expect.md
+5
-5
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateStaticComponents
5
+// @loggerTestOnly @validateStaticComponents
6
function Example(props) {
7
function Component() {
8
return <div />;
@@ -15,7 +15,7 @@ function Example(props) {
15
## Code
16
17
```javascript
18
-import { c as _c } from "react/compiler-runtime"; // @logger @validateStaticComponents
18
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateStaticComponents
19
function Example(props) {
20
const $ = _c(1);
21
let t0;
@@ -37,9 +37,9 @@ function Example(props) {
37
## Logs
38
39
```
40
-{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":6,"column":10,"index":122},"end":{"line":6,"column":19,"index":131},"filename":"invalid-dynamically-constructed-component-function.ts"}}},"fnLoc":null}
41
-{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":2,"index":65},"end":{"line":5,"column":3,"index":111},"filename":"invalid-dynamically-constructed-component-function.ts"}}},"fnLoc":null}
42
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":37},"end":{"line":7,"column":1,"index":137},"filename":"invalid-dynamically-constructed-component-function.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
40
+{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":6,"column":10,"index":130},"end":{"line":6,"column":19,"index":139},"filename":"invalid-dynamically-constructed-component-function.ts"}}},"fnLoc":null}
41
+{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":2,"index":73},"end":{"line":5,"column":3,"index":119},"filename":"invalid-dynamically-constructed-component-function.ts"}}},"fnLoc":null}
42
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":45},"end":{"line":7,"column":1,"index":145},"filename":"invalid-dynamically-constructed-component-function.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
43
```
44
45
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-function.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateStaticComponents
1
+// @loggerTestOnly @validateStaticComponents
2
function Example(props) {
3
function Component() {
4
return <div />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-method-call.expect.md
+5
-5
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateStaticComponents
5
+// @loggerTestOnly @validateStaticComponents
6
function Example(props) {
7
const Component = props.foo.bar();
8
return <Component />;
@@ -13,7 +13,7 @@ function Example(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @logger @validateStaticComponents
16
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateStaticComponents
17
function Example(props) {
18
const $ = _c(4);
19
let t0;
@@ -41,9 +41,9 @@ function Example(props) {
41
## Logs
42
43
```
44
-{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":110},"end":{"line":4,"column":19,"index":119},"filename":"invalid-dynamically-constructed-component-method-call.ts"}}},"fnLoc":null}
45
-{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":83},"end":{"line":3,"column":35,"index":98},"filename":"invalid-dynamically-constructed-component-method-call.ts"}}},"fnLoc":null}
46
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":37},"end":{"line":5,"column":1,"index":125},"filename":"invalid-dynamically-constructed-component-method-call.ts"},"fnName":"Example","memoSlots":4,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
44
+{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":118},"end":{"line":4,"column":19,"index":127},"filename":"invalid-dynamically-constructed-component-method-call.ts"}}},"fnLoc":null}
45
+{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":91},"end":{"line":3,"column":35,"index":106},"filename":"invalid-dynamically-constructed-component-method-call.ts"}}},"fnLoc":null}
46
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":45},"end":{"line":5,"column":1,"index":133},"filename":"invalid-dynamically-constructed-component-method-call.ts"},"fnName":"Example","memoSlots":4,"memoBlocks":2,"memoValues":2,"prunedMemoBlocks":0,"prunedMemoValues":0}
47
```
48
49
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-method-call.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateStaticComponents
1
+// @loggerTestOnly @validateStaticComponents
2
function Example(props) {
3
const Component = props.foo.bar();
4
return <Component />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-new.expect.md
+5
-5
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @logger @validateStaticComponents
5
+// @loggerTestOnly @validateStaticComponents
6
function Example(props) {
7
const Component = new ComponentFactory();
8
return <Component />;
@@ -13,7 +13,7 @@ function Example(props) {
13
## Code
14
15
```javascript
16
-import { c as _c } from "react/compiler-runtime"; // @logger @validateStaticComponents
16
+import { c as _c } from "react/compiler-runtime"; // @loggerTestOnly @validateStaticComponents
17
function Example(props) {
18
const $ = _c(1);
19
let t0;
@@ -32,9 +32,9 @@ function Example(props) {
32
## Logs
33
34
```
35
-{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":117},"end":{"line":4,"column":19,"index":126},"filename":"invalid-dynamically-constructed-component-new.ts"}}},"fnLoc":null}
36
-{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":83},"end":{"line":3,"column":42,"index":105},"filename":"invalid-dynamically-constructed-component-new.ts"}}},"fnLoc":null}
37
-{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":37},"end":{"line":5,"column":1,"index":132},"filename":"invalid-dynamically-constructed-component-new.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
35
+{"kind":"CompileError","detail":{"options":{"reason":"Components created during render will reset their state each time they are created. Declare components outside of render. ","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":4,"column":10,"index":125},"end":{"line":4,"column":19,"index":134},"filename":"invalid-dynamically-constructed-component-new.ts"}}},"fnLoc":null}
36
+{"kind":"CompileError","detail":{"options":{"reason":"The component may be created during render","description":null,"severity":"InvalidReact","suggestions":null,"loc":{"start":{"line":3,"column":20,"index":91},"end":{"line":3,"column":42,"index":113},"filename":"invalid-dynamically-constructed-component-new.ts"}}},"fnLoc":null}
37
+{"kind":"CompileSuccess","fnLoc":{"start":{"line":2,"column":0,"index":45},"end":{"line":5,"column":1,"index":140},"filename":"invalid-dynamically-constructed-component-new.ts"},"fnName":"Example","memoSlots":1,"memoBlocks":1,"memoValues":1,"prunedMemoBlocks":0,"prunedMemoValues":0}
38
```
39
40
### Eval output
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/static-components/invalid-dynamically-constructed-component-new.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @logger @validateStaticComponents
1
+// @loggerTestOnly @validateStaticComponents
2
function Example(props) {
3
const Component = new ComponentFactory();
4
return <Component />;
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/target-flag-meta-internal.expect.md
+1
-1
@@ -19,7 +19,7 @@ export const FIXTURE_ENTRYPOINT = {
19
## Code
20
21
```javascript
22
-import { c as _c } from "react"; // @target="donotuse_meta_internal"
22
+import { c as _c } from "react/compiler-runtime"; // @target="donotuse_meta_internal"
23
24
function Component() {
25
const $ = _c(1);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/target-flag.expect.md
+1
-1
@@ -19,7 +19,7 @@ export const FIXTURE_ENTRYPOINT = {
19
## Code
20
21
```javascript
22
-import { c as _c } from "react-compiler-runtime"; // @target="18"
22
+import { c as _c } from "react/compiler-runtime"; // @target="18"
23
24
function Component() {
25
const $ = _c(1);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-capitalized-fn-call.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validateNoCapitalizedCalls @enableFire @panicThreshold(none)
5
+// @validateNoCapitalizedCalls @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
const CapitalizedCall = require('shared-runtime').sum;
8
@@ -24,7 +24,7 @@ function Component({prop1, bar}) {
24
## Code
25
26
```javascript
27
-import { useFire } from "react/compiler-runtime"; // @validateNoCapitalizedCalls @enableFire @panicThreshold(none)
27
+import { useFire } from "react/compiler-runtime"; // @validateNoCapitalizedCalls @enableFire @panicThreshold:"none"
28
import { fire } from "react";
29
const CapitalizedCall = require("shared-runtime").sum;
30
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-capitalized-fn-call.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @validateNoCapitalizedCalls @enableFire @panicThreshold(none)
1
+// @validateNoCapitalizedCalls @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
const CapitalizedCall = require('shared-runtime').sum;
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-eslint-suppressions.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {useRef} from 'react';
7
8
function Component({props, bar}) {
@@ -26,7 +26,7 @@ function Component({props, bar}) {
26
## Code
27
28
```javascript
29
-import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold(none)
29
+import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold:"none"
30
import { useRef } from "react";
31
32
function Component(t0) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-eslint-suppressions.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {useRef} from 'react';
3
4
function Component({props, bar}) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-preserve-memo.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold(none)
5
+// @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
import {sum} from 'shared-runtime';
8
@@ -24,7 +24,7 @@ function Component({prop1, bar}) {
24
## Code
25
26
```javascript
27
-import { useFire } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold(none)
27
+import { useFire } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold:"none"
28
import { fire } from "react";
29
import { sum } from "shared-runtime";
30
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-preserve-memo.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold(none)
1
+// @validatePreserveExistingMemoizationGuarantees @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
import {sum} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-prop-write.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
8
function Component({prop1}) {
@@ -20,7 +20,7 @@ function Component({prop1}) {
20
## Code
21
22
```javascript
23
-import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold(none)
23
+import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold:"none"
24
import { fire } from "react";
25
26
function Component(t0) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-prop-write.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
4
function Component({prop1}) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-ref-current-access.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @flow @enableFire @panicThreshold(none)
5
+// @flow @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
import {print} from 'shared-runtime';
8
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/bailout-validate-ref-current-access.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @flow @enableFire @panicThreshold(none)
1
+// @flow @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
import {print} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.todo-syntax.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
8
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.todo-syntax.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
4
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.untransformed-fire-reference.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
8
console.log(fire == null);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.untransformed-fire-reference.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
4
console.log(fire == null);
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.use-no-memo.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
8
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/error.use-no-memo.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
4
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/infer-deps-on-retry.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @inferEffectDependencies @panicThreshold(none)
5
+// @inferEffectDependencies @panicThreshold:"none"
6
import {useRef} from 'react';
7
import {useSpecialEffect} from 'shared-runtime';
8
@@ -25,7 +25,7 @@ function useFoo({cond}) {
25
## Code
26
27
```javascript
28
-// @inferEffectDependencies @panicThreshold(none)
28
+// @inferEffectDependencies @panicThreshold:"none"
29
import { useRef } from "react";
30
import { useSpecialEffect } from "shared-runtime";
31
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/infer-deps-on-retry.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @inferEffectDependencies @panicThreshold(none)
1
+// @inferEffectDependencies @panicThreshold:"none"
2
import {useRef} from 'react';
3
import {useSpecialEffect} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/no-fire-todo-syntax-shouldnt-throw.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire} from 'react';
7
8
/**
@@ -43,7 +43,7 @@ function FireComponent(props) {
43
## Code
44
45
```javascript
46
-import { c as _c, useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold(none)
46
+import { c as _c, useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold:"none"
47
import { fire } from "react";
48
49
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-retry/no-fire-todo-syntax-shouldnt-throw.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire} from 'react';
3
4
/**
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-validate-conditional-hook.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @enableFire @panicThreshold(none)
5
+// @enableFire @panicThreshold:"none"
6
import {fire, useEffect} from 'react';
7
import {Stringify} from 'shared-runtime';
8
@@ -29,7 +29,7 @@ function Component(props) {
29
## Code
30
31
```javascript
32
-import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold(none)
32
+import { useFire } from "react/compiler-runtime"; // @enableFire @panicThreshold:"none"
33
import { fire, useEffect } from "react";
34
import { Stringify } from "shared-runtime";
35
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/bailout-validate-conditional-hook.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @enableFire @panicThreshold(none)
1
+// @enableFire @panicThreshold:"none"
2
import {fire, useEffect} from 'react';
3
import {Stringify} from 'shared-runtime';
4
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/repro-dont-add-hook-guards-on-retry.expect.md
+1
-1
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @flow @enableEmitHookGuards @panicThreshold(none) @enableFire
5
+// @flow @enableEmitHookGuards @panicThreshold:"none" @enableFire
6
import {useEffect, fire} from 'react';
7
8
function Component(props, useDynamicHook) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/transform-fire/repro-dont-add-hook-guards-on-retry.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @flow @enableEmitHookGuards @panicThreshold(none) @enableFire
1
+// @flow @enableEmitHookGuards @panicThreshold:"none" @enableFire
2
import {useEffect, fire} from 'react';
3
4
function Component(props, useDynamicHook) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/unclosed-eslint-suppression-skips-all-components.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @panicThreshold(none)
5
+// @panicThreshold:"none"
6
7
// unclosed disable rule should affect all components
8
/* eslint-disable react-hooks/rules-of-hooks */
@@ -20,7 +20,7 @@ function ValidComponent2(props) {
20
## Code
21
22
```javascript
23
-// @panicThreshold(none)
23
+// @panicThreshold:"none"
24
25
// unclosed disable rule should affect all components
26
/* eslint-disable react-hooks/rules-of-hooks */
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/unclosed-eslint-suppression-skips-all-components.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @panicThreshold(none)
1
+// @panicThreshold:"none"
2
3
// unclosed disable rule should affect all components
4
/* eslint-disable react-hooks/rules-of-hooks */
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-no-memo-module-scope-usememo-function-scope.expect.md
+2
-2
@@ -2,7 +2,7 @@
2
## Input
3
4
```javascript
5
-// @compilationMode(all)
5
+// @compilationMode:"all"
6
'use no memo';
7
8
function TestComponent({x}) {
@@ -15,7 +15,7 @@ function TestComponent({x}) {
15
## Code
16
17
```javascript
18
-// @compilationMode(all)
18
+// @compilationMode:"all"
19
"use no memo";
20
21
function TestComponent({ x }) {
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-no-memo-module-scope-usememo-function-scope.js
+1
-1
@@ -1,4 +1,4 @@
1
-// @compilationMode(all)
1
+// @compilationMode:"all"
2
'use no memo';
3
4
function TestComponent({x}) {
compiler/packages/snap/src/compiler.ts
+1
-109
@@ -20,10 +20,6 @@ import type {
20
} from 'babel-plugin-react-compiler/src/Entrypoint';
21
import type {Effect, ValueKind} from 'babel-plugin-react-compiler/src/HIR';
22
import type {parseConfigPragmaForTests as ParseConfigPragma} from 'babel-plugin-react-compiler/src/Utils/TestUtils';
23
-import type {
24
- Macro,
25
- MacroMethod,
26
-} from 'babel-plugin-react-compiler/src/HIR/Environment';
23
import * as HermesParser from 'hermes-parser';
24
import invariant from 'invariant';
25
import path from 'path';
@@ -47,52 +43,10 @@ function makePluginOptions(
43
EffectEnum: typeof Effect,
44
ValueKindEnum: typeof ValueKind,
45
): [PluginOptions, Array<{filename: string | null; event: LoggerEvent}>] {
50
- let gating = null;
51
- let hookPattern: string | null = null;
46
// TODO(@mofeiZ) rewrite snap fixtures to @validatePreserveExistingMemo:false
47
let validatePreserveExistingMemoizationGuarantees = false;
54
- let customMacros: null | Array<Macro> = null;
55
- let validateBlocklistedImports = null;
48
let target: CompilerReactTarget = '19';
49
58
- if (firstLine.includes('@gating')) {
59
- gating = {
60
- source: 'ReactForgetFeatureFlag',
61
- importSpecifierName: 'isForgetEnabled_Fixtures',
62
- };
63
- }
64
-
65
- const targetMatch = /@target="([^"]+)"/.exec(firstLine);
66
- if (targetMatch) {
67
- if (targetMatch[1] === 'donotuse_meta_internal') {
68
- target = {
69
- kind: targetMatch[1],
70
- runtimeModule: 'react',
71
- };
72
- } else {
73
- // @ts-ignore
74
- target = targetMatch[1];
75
- }
76
- }
77
-
78
- let eslintSuppressionRules: Array<string> | null = null;
79
- const eslintSuppressionMatch = /@eslintSuppressionRules\(([^)]+)\)/.exec(
80
- firstLine,
81
- );
82
- if (eslintSuppressionMatch != null) {
83
- eslintSuppressionRules = eslintSuppressionMatch[1].split('|');
84
- }
85
-
86
- let flowSuppressions: boolean = false;
87
- if (firstLine.includes('@enableFlowSuppressions')) {
88
- flowSuppressions = true;
89
- }
90
-
91
- let ignoreUseNoForget: boolean = false;
92
- if (firstLine.includes('@ignoreUseNoForget')) {
93
- ignoreUseNoForget = true;
94
- }
95
-
50
/**
51
* Snap currently runs all fixtures without `validatePreserveExistingMemo` as
52
* most fixtures are interested in compilation output, not whether the
@@ -105,64 +59,9 @@ function makePluginOptions(
59
validatePreserveExistingMemoizationGuarantees = true;
60
}
61
108
- const hookPatternMatch = /@hookPattern:"([^"]+)"/.exec(firstLine);
109
- if (
110
- hookPatternMatch &&
111
- hookPatternMatch.length > 1 &&
112
- hookPatternMatch[1].trim().length > 0
113
- ) {
114
- hookPattern = hookPatternMatch[1].trim();
115
- } else if (firstLine.includes('@hookPattern')) {
116
- throw new Error(
117
- 'Invalid @hookPattern:"..." pragma, must contain the prefix between balanced double quotes eg @hookPattern:"pattern"',
118
- );
119
- }
120
-
121
- const customMacrosMatch = /@customMacros\(([^)]+)\)/.exec(firstLine);
122
- if (
123
- customMacrosMatch &&
124
- customMacrosMatch.length > 1 &&
125
- customMacrosMatch[1].trim().length > 0
126
- ) {
127
- const customMacrosStrs = customMacrosMatch[1]
128
- .split(' ')
129
- .map(s => s.trim())
130
- .filter(s => s.length > 0);
131
- if (customMacrosStrs.length > 0) {
132
- customMacros = [];
133
- for (const customMacroStr of customMacrosStrs) {
134
- const props: Array<MacroMethod> = [];
135
- const customMacroSplit = customMacroStr.split('.');
136
- if (customMacroSplit.length > 0) {
137
- for (const elt of customMacroSplit.slice(1)) {
138
- if (elt === '*') {
139
- props.push({type: 'wildcard'});
140
- } else if (elt.length > 0) {
141
- props.push({type: 'name', name: elt});
142
- }
143
- }
144
- customMacros.push([customMacroSplit[0], props]);
145
- }
146
- }
147
- }
148
- }
149
-
150
- const validateBlocklistedImportsMatch =
151
- /@validateBlocklistedImports\(([^)]+)\)/.exec(firstLine);
152
- if (
153
- validateBlocklistedImportsMatch &&
154
- validateBlocklistedImportsMatch.length > 1 &&
155
- validateBlocklistedImportsMatch[1].trim().length > 0
156
- ) {
157
- validateBlocklistedImports = validateBlocklistedImportsMatch[1]
158
- .split(' ')
159
- .map(s => s.trim())
160
- .filter(s => s.length > 0);
161
- }
162
-
62
const logs: Array<{filename: string | null; event: LoggerEvent}> = [];
63
const logger: Logger = {
165
- logEvent: firstLine.includes('@logger')
64
+ logEvent: firstLine.includes('@loggerTestOnly')
65
? (filename, event) => {
66
logs.push({filename, event});
67
}
@@ -179,17 +78,10 @@ function makePluginOptions(
78
EffectEnum,
79
ValueKindEnum,
80
}),
182
- customMacros,
81
assertValidMutableRanges: true,
184
- hookPattern,
82
validatePreserveExistingMemoizationGuarantees,
186
- validateBlocklistedImports,
83
},
84
logger,
189
- gating,
190
- eslintSuppressionRules,
191
- flowSuppressions,
192
- ignoreUseNoForget,
85
enableReanimatedCheck: false,
86
target,
87
};