1
+
2
+## Input
3
+
4
+```javascript
5
+// @enableNameAnonymousFunctions
6
+
7
+import {useEffect} from 'react';
8
+import {identity, Stringify, useIdentity} from 'shared-runtime';
9
+import * as SharedRuntime from 'shared-runtime';
10
+
11
+function Component(props) {
12
+ function named() {
13
+ const inner = () => props.named;
14
+ return inner();
15
+ }
16
+ const namedVariable = function () {
17
+ return props.namedVariable;
18
+ };
19
+ const methodCall = SharedRuntime.identity(() => props.methodCall);
20
+ const call = identity(() => props.call);
21
+ const builtinElementAttr = <div onClick={() => props.builtinElementAttr} />;
22
+ const namedElementAttr = <Stringify onClick={() => props.namedElementAttr} />;
23
+ const hookArgument = useIdentity(() => props.hookArgument);
24
+ useEffect(() => {
25
+ console.log(props.useEffect);
26
+ JSON.stringify(null, null, () => props.useEffect);
27
+ const g = () => props.useEffect;
28
+ console.log(g());
29
+ }, [props.useEffect]);
30
+ return (
31
+ <>
32
+ {named()}
33
+ {namedVariable()}
34
+ {methodCall()}
35
+ {call()}
36
+ {builtinElementAttr}
37
+ {namedElementAttr}
38
+ {hookArgument()}
39
+ </>
40
+ );
41
+}
42
+
43
+export const TODO_FIXTURE_ENTRYPOINT = {
44
+ fn: Component,
45
+ params: [
46
+ {
47
+ named: '<named>',
48
+ namedVariable: '<namedVariable>',
49
+ methodCall: '<methodCall>',
50
+ call: '<call>',
51
+ builtinElementAttr: '<builtinElementAttr>',
52
+ namedElementAttr: '<namedElementAttr>',
53
+ hookArgument: '<hookArgument>',
54
+ useEffect: '<useEffect>',
55
+ },
56
+ ],
57
+};
58
+
59
+```
60
+
61
+## Code
62
+
63
+```javascript
64
+import { c as _c } from "react/compiler-runtime"; // @enableNameAnonymousFunctions
65
+
66
+import { useEffect } from "react";
67
+import { identity, Stringify, useIdentity } from "shared-runtime";
68
+import * as SharedRuntime from "shared-runtime";
69
+
70
+function Component(props) {
71
+ const $ = _c(31);
72
+ let t0;
73
+ if ($[0] !== props.named) {
74
+ t0 = function named() {
75
+ const inner = { "Component[named > inner]": () => props.named }[
76
+ "Component[named > inner]"
77
+ ];
78
+ return inner();
79
+ };
80
+ $[0] = props.named;
81
+ $[1] = t0;
82
+ } else {
83
+ t0 = $[1];
84
+ }
85
+ const named = t0;
86
+ let t1;
87
+ if ($[2] !== props.namedVariable) {
88
+ t1 = {
89
+ "Component[namedVariable]": function () {
90
+ return props.namedVariable;
91
+ },
92
+ }["Component[namedVariable]"];
93
+ $[2] = props.namedVariable;
94
+ $[3] = t1;
95
+ } else {
96
+ t1 = $[3];
97
+ }
98
+ const namedVariable = t1;
99
+ let t2;
100
+ if ($[4] !== props.methodCall) {
101
+ t2 = { "Component[SharedRuntime.identity()]": () => props.methodCall }[
102
+ "Component[SharedRuntime.identity()]"
103
+ ];
104
+ $[4] = props.methodCall;
105
+ $[5] = t2;
106
+ } else {
107
+ t2 = $[5];
108
+ }
109
+ const methodCall = SharedRuntime.identity(t2);
110
+ let t3;
111
+ if ($[6] !== props.call) {
112
+ t3 = { "Component[identity()]": () => props.call }["Component[identity()]"];
113
+ $[6] = props.call;
114
+ $[7] = t3;
115
+ } else {
116
+ t3 = $[7];
117
+ }
118
+ const call = identity(t3);
119
+ let t4;
120
+ if ($[8] !== props.builtinElementAttr) {
121
+ t4 = (
122
+ <div
123
+ onClick={
124
+ { "Component[<div>.onClick]": () => props.builtinElementAttr }[
125
+ "Component[<div>.onClick]"
126
+ ]
127
+ }
128
+ />
129
+ );
130
+ $[8] = props.builtinElementAttr;
131
+ $[9] = t4;
132
+ } else {
133
+ t4 = $[9];
134
+ }
135
+ const builtinElementAttr = t4;
136
+ let t5;
137
+ if ($[10] !== props.namedElementAttr) {
138
+ t5 = (
139
+ <Stringify
140
+ onClick={
141
+ { "Component[<Stringify>.onClick]": () => props.namedElementAttr }[
142
+ "Component[<Stringify>.onClick]"
143
+ ]
144
+ }
145
+ />
146
+ );
147
+ $[10] = props.namedElementAttr;
148
+ $[11] = t5;
149
+ } else {
150
+ t5 = $[11];
151
+ }
152
+ const namedElementAttr = t5;
153
+ let t6;
154
+ if ($[12] !== props.hookArgument) {
155
+ t6 = { "Component[useIdentity()]": () => props.hookArgument }[
156
+ "Component[useIdentity()]"
157
+ ];
158
+ $[12] = props.hookArgument;
159
+ $[13] = t6;
160
+ } else {
161
+ t6 = $[13];
162
+ }
163
+ const hookArgument = useIdentity(t6);
164
+ let t7;
165
+ let t8;
166
+ if ($[14] !== props.useEffect) {
167
+ t7 = {
168
+ "Component[useEffect()]": () => {
169
+ console.log(props.useEffect);
170
+ JSON.stringify(
171
+ null,
172
+ null,
173
+ {
174
+ "Component[useEffect() > JSON.stringify()]": () => props.useEffect,
175
+ }["Component[useEffect() > JSON.stringify()]"],
176
+ );
177
+ const g = { "Component[useEffect() > g]": () => props.useEffect }[
178
+ "Component[useEffect() > g]"
179
+ ];
180
+ console.log(g());
181
+ },
182
+ }["Component[useEffect()]"];
183
+ t8 = [props.useEffect];
184
+ $[14] = props.useEffect;
185
+ $[15] = t7;
186
+ $[16] = t8;
187
+ } else {
188
+ t7 = $[15];
189
+ t8 = $[16];
190
+ }
191
+ useEffect(t7, t8);
192
+ let t9;
193
+ if ($[17] !== named) {
194
+ t9 = named();
195
+ $[17] = named;
196
+ $[18] = t9;
197
+ } else {
198
+ t9 = $[18];
199
+ }
200
+ let t10;
201
+ if ($[19] !== namedVariable) {
202
+ t10 = namedVariable();
203
+ $[19] = namedVariable;
204
+ $[20] = t10;
205
+ } else {
206
+ t10 = $[20];
207
+ }
208
+ const t11 = methodCall();
209
+ const t12 = call();
210
+ let t13;
211
+ if ($[21] !== hookArgument) {
212
+ t13 = hookArgument();
213
+ $[21] = hookArgument;
214
+ $[22] = t13;
215
+ } else {
216
+ t13 = $[22];
217
+ }
218
+ let t14;
219
+ if (
220
+ $[23] !== builtinElementAttr ||
221
+ $[24] !== namedElementAttr ||
222
+ $[25] !== t10 ||
223
+ $[26] !== t11 ||
224
+ $[27] !== t12 ||
225
+ $[28] !== t13 ||
226
+ $[29] !== t9
227
+ ) {
228
+ t14 = (
229
+ <>
230
+ {t9}
231
+ {t10}
232
+ {t11}
233
+ {t12}
234
+ {builtinElementAttr}
235
+ {namedElementAttr}
236
+ {t13}
237
+ </>
238
+ );
239
+ $[23] = builtinElementAttr;
240
+ $[24] = namedElementAttr;
241
+ $[25] = t10;
242
+ $[26] = t11;
243
+ $[27] = t12;
244
+ $[28] = t13;
245
+ $[29] = t9;
246
+ $[30] = t14;
247
+ } else {
248
+ t14 = $[30];
249
+ }
250
+ return t14;
251
+}
252
+
253
+export const TODO_FIXTURE_ENTRYPOINT = {
254
+ fn: Component,
255
+ params: [
256
+ {
257
+ named: "<named>",
258
+ namedVariable: "<namedVariable>",
259
+ methodCall: "<methodCall>",
260
+ call: "<call>",
261
+ builtinElementAttr: "<builtinElementAttr>",
262
+ namedElementAttr: "<namedElementAttr>",
263
+ hookArgument: "<hookArgument>",
264
+ useEffect: "<useEffect>",
265
+ },
266
+ ],
267
+};
268
+
269
+```
270
+
271
+### Eval output
272
+(kind: exception) Fixture not implemented
\ No newline at end of file