Skip to content

Commit 3759a26

Browse files
javachefacebook-github-bot
authored andcommitted
Avoid property name conflicts in event-emitter codegen (facebook#36591)
Summary: Pull Request resolved: facebook#36591 If any of the properties used in event-emitter codegen conflict with `event` or `payload`, the generated code will fail to build, even if this generated code isn't used. Since these are quite common keys, prefix them with `$` (still valid C++) to avoid conflicts. Changelog: [General][Fixed] Resolved property name conflicts in event-emitter codegen Reviewed By: cipolleschi Differential Revision: D44274619 fbshipit-source-id: 45e67850c49e082d8f9b1f85bb632d45a9fd4f1d
1 parent 928f4fb commit 3759a26

File tree

6 files changed

+147
-320
lines changed

6 files changed

+147
-320
lines changed

packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateEventEmitterCpp-test.js.snap

Lines changed: 58 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ Object {
1717
namespace facebook {
1818
namespace react {
1919
20-
21-
2220
} // namespace react
2321
} // namespace facebook
2422
",
@@ -42,8 +40,6 @@ Object {
4240
namespace facebook {
4341
namespace react {
4442
45-
46-
4743
} // namespace react
4844
} // namespace facebook
4945
",
@@ -67,8 +63,6 @@ Object {
6763
namespace facebook {
6864
namespace react {
6965
70-
71-
7266
} // namespace react
7367
} // namespace facebook
7468
",
@@ -92,8 +86,6 @@ Object {
9286
namespace facebook {
9387
namespace react {
9488
95-
96-
9789
} // namespace react
9890
} // namespace facebook
9991
",
@@ -117,8 +109,6 @@ Object {
117109
namespace facebook {
118110
namespace react {
119111
120-
121-
122112
} // namespace react
123113
} // namespace facebook
124114
",
@@ -142,8 +132,6 @@ Object {
142132
namespace facebook {
143133
namespace react {
144134
145-
146-
147135
} // namespace react
148136
} // namespace facebook
149137
",
@@ -167,23 +155,21 @@ Object {
167155
namespace facebook {
168156
namespace react {
169157
170-
void EventNestedObjectPropsNativeComponentViewEventEmitter::onChange(OnChange event) const {
171-
dispatchEvent(\\"change\\", [event=std::move(event)](jsi::Runtime &runtime) {
172-
auto payload = jsi::Object(runtime);
158+
void EventNestedObjectPropsNativeComponentViewEventEmitter::onChange(OnChange $event) const {
159+
dispatchEvent(\\"change\\", [$event=std::move($event)](jsi::Runtime &runtime) {
160+
auto $payload = jsi::Object(runtime);
173161
{
174-
auto location = jsi::Object(runtime);
175-
{
176-
auto source = jsi::Object(runtime);
177-
source.setProperty(runtime, \\"url\\", event.location.source.url);
178-
179-
location.setProperty(runtime, \\"source\\", source);
180-
}
181-
location.setProperty(runtime, \\"x\\", event.location.x);
182-
location.setProperty(runtime, \\"y\\", event.location.y);
183-
184-
payload.setProperty(runtime, \\"location\\", location);
185-
}
186-
return payload;
162+
auto location = jsi::Object(runtime);
163+
{
164+
auto source = jsi::Object(runtime);
165+
source.setProperty(runtime, \\"url\\", $event.location.source.url);
166+
location.setProperty(runtime, \\"source\\", source);
167+
}
168+
location.setProperty(runtime, \\"x\\", $event.location.x);
169+
location.setProperty(runtime, \\"y\\", $event.location.y);
170+
$payload.setProperty(runtime, \\"location\\", location);
171+
}
172+
return $payload;
187173
});
188174
}
189175
@@ -210,49 +196,59 @@ Object {
210196
namespace facebook {
211197
namespace react {
212198
213-
void EventPropsNativeComponentViewEventEmitter::onChange(OnChange event) const {
214-
dispatchEvent(\\"change\\", [event=std::move(event)](jsi::Runtime &runtime) {
215-
auto payload = jsi::Object(runtime);
216-
payload.setProperty(runtime, \\"value\\", event.value);
217-
payload.setProperty(runtime, \\"source\\", event.source);
218-
payload.setProperty(runtime, \\"progress\\", event.progress);
219-
payload.setProperty(runtime, \\"scale\\", event.scale);
220-
return payload;
199+
void EventPropsNativeComponentViewEventEmitter::onChange(OnChange $event) const {
200+
dispatchEvent(\\"change\\", [$event=std::move($event)](jsi::Runtime &runtime) {
201+
auto $payload = jsi::Object(runtime);
202+
$payload.setProperty(runtime, \\"value\\", $event.value);
203+
$payload.setProperty(runtime, \\"source\\", $event.source);
204+
$payload.setProperty(runtime, \\"progress\\", $event.progress);
205+
$payload.setProperty(runtime, \\"scale\\", $event.scale);
206+
return $payload;
221207
});
222208
}
223-
void EventPropsNativeComponentViewEventEmitter::onEventDirect(OnEventDirect event) const {
224-
dispatchEvent(\\"eventDirect\\", [event=std::move(event)](jsi::Runtime &runtime) {
225-
auto payload = jsi::Object(runtime);
226-
payload.setProperty(runtime, \\"value\\", event.value);
227-
return payload;
209+
210+
211+
void EventPropsNativeComponentViewEventEmitter::onEventDirect(OnEventDirect $event) const {
212+
dispatchEvent(\\"eventDirect\\", [$event=std::move($event)](jsi::Runtime &runtime) {
213+
auto $payload = jsi::Object(runtime);
214+
$payload.setProperty(runtime, \\"value\\", $event.value);
215+
return $payload;
228216
});
229217
}
230-
void EventPropsNativeComponentViewEventEmitter::onEventDirectWithPaperName(OnEventDirectWithPaperName event) const {
231-
dispatchEvent(\\"eventDirectWithPaperName\\", [event=std::move(event)](jsi::Runtime &runtime) {
232-
auto payload = jsi::Object(runtime);
233-
payload.setProperty(runtime, \\"value\\", event.value);
234-
return payload;
218+
219+
220+
void EventPropsNativeComponentViewEventEmitter::onEventDirectWithPaperName(OnEventDirectWithPaperName $event) const {
221+
dispatchEvent(\\"eventDirectWithPaperName\\", [$event=std::move($event)](jsi::Runtime &runtime) {
222+
auto $payload = jsi::Object(runtime);
223+
$payload.setProperty(runtime, \\"value\\", $event.value);
224+
return $payload;
235225
});
236226
}
237-
void EventPropsNativeComponentViewEventEmitter::onOrientationChange(OnOrientationChange event) const {
238-
dispatchEvent(\\"orientationChange\\", [event=std::move(event)](jsi::Runtime &runtime) {
239-
auto payload = jsi::Object(runtime);
240-
payload.setProperty(runtime, \\"orientation\\", toString(event.orientation));
241-
return payload;
227+
228+
229+
void EventPropsNativeComponentViewEventEmitter::onOrientationChange(OnOrientationChange $event) const {
230+
dispatchEvent(\\"orientationChange\\", [$event=std::move($event)](jsi::Runtime &runtime) {
231+
auto $payload = jsi::Object(runtime);
232+
$payload.setProperty(runtime, \\"orientation\\", toString($event.orientation));
233+
return $payload;
242234
});
243235
}
244-
void EventPropsNativeComponentViewEventEmitter::onEnd(OnEnd event) const {
236+
237+
238+
void EventPropsNativeComponentViewEventEmitter::onEnd(OnEnd $event) const {
245239
dispatchEvent(\\"end\\", [](jsi::Runtime &runtime) {
246-
auto payload = jsi::Object(runtime);
240+
auto $payload = jsi::Object(runtime);
247241
248-
return payload;
242+
return $payload;
249243
});
250244
}
251-
void EventPropsNativeComponentViewEventEmitter::onEventBubblingWithPaperName(OnEventBubblingWithPaperName event) const {
245+
246+
247+
void EventPropsNativeComponentViewEventEmitter::onEventBubblingWithPaperName(OnEventBubblingWithPaperName $event) const {
252248
dispatchEvent(\\"eventBubblingWithPaperName\\", [](jsi::Runtime &runtime) {
253-
auto payload = jsi::Object(runtime);
249+
auto $payload = jsi::Object(runtime);
254250
255-
return payload;
251+
return $payload;
256252
});
257253
}
258254
@@ -279,8 +275,6 @@ Object {
279275
namespace facebook {
280276
namespace react {
281277
282-
283-
284278
} // namespace react
285279
} // namespace facebook
286280
",
@@ -304,8 +298,6 @@ Object {
304298
namespace facebook {
305299
namespace react {
306300
307-
308-
309301
} // namespace react
310302
} // namespace facebook
311303
",
@@ -329,8 +321,6 @@ Object {
329321
namespace facebook {
330322
namespace react {
331323
332-
333-
334324
} // namespace react
335325
} // namespace facebook
336326
",
@@ -354,11 +344,11 @@ Object {
354344
namespace facebook {
355345
namespace react {
356346
357-
void InterfaceOnlyNativeComponentViewEventEmitter::onChange(OnChange event) const {
358-
dispatchEvent(\\"change\\", [event=std::move(event)](jsi::Runtime &runtime) {
359-
auto payload = jsi::Object(runtime);
360-
payload.setProperty(runtime, \\"value\\", event.value);
361-
return payload;
347+
void InterfaceOnlyNativeComponentViewEventEmitter::onChange(OnChange $event) const {
348+
dispatchEvent(\\"change\\", [$event=std::move($event)](jsi::Runtime &runtime) {
349+
auto $payload = jsi::Object(runtime);
350+
$payload.setProperty(runtime, \\"value\\", $event.value);
351+
return $payload;
362352
});
363353
}
364354
@@ -385,8 +375,6 @@ Object {
385375
namespace facebook {
386376
namespace react {
387377
388-
389-
390378
} // namespace react
391379
} // namespace facebook
392380
",
@@ -410,8 +398,6 @@ Object {
410398
namespace facebook {
411399
namespace react {
412400
413-
414-
415401
} // namespace react
416402
} // namespace facebook
417403
",
@@ -435,8 +421,6 @@ Object {
435421
namespace facebook {
436422
namespace react {
437423
438-
439-
440424
} // namespace react
441425
} // namespace facebook
442426
",
@@ -460,8 +444,6 @@ Object {
460444
namespace facebook {
461445
namespace react {
462446
463-
464-
465447
} // namespace react
466448
} // namespace facebook
467449
",
@@ -485,8 +467,6 @@ Object {
485467
namespace facebook {
486468
namespace react {
487469
488-
489-
490470
} // namespace react
491471
} // namespace facebook
492472
",
@@ -510,8 +490,6 @@ Object {
510490
namespace facebook {
511491
namespace react {
512492
513-
514-
515493
} // namespace react
516494
} // namespace facebook
517495
",

0 commit comments

Comments
 (0)