Skip to content

Commit e762d96

Browse files
javacheFacebook Github Bot 8
authored andcommitted
Use new enqueueJSCall method everywhere
Reviewed By: majak Differential Revision: D3605263 fbshipit-source-id: 215f896d675b937593c8b796ed6ec5261ac74dbf
1 parent 1ab4b2a commit e762d96

File tree

8 files changed

+62
-30
lines changed

8 files changed

+62
-30
lines changed

Examples/UIExplorer/UIExplorerUnitTests/RCTEventDispatcherTests.m

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#import "RCTEventDispatcher.h"
2020
#import "RCTBridge+Private.h"
2121

22-
@interface RCTTestEvent : NSObject <RCTEvent>
22+
@interface RCTTestEvent : NSObject <RCTEvent>
2323
@property (atomic, assign, readwrite) BOOL canCoalesce;
2424
@end
2525

@@ -54,7 +54,7 @@ - (instancetype)initWithViewTag:(NSNumber *)viewTag
5454

5555
+ (NSString *)moduleDotMethod
5656
{
57-
return @"RCTDeviceEventEmitter.emit";
57+
return @"MyCustomEventemitter.emit";
5858
}
5959

6060
- (NSArray *)arguments
@@ -100,8 +100,10 @@ - (void)setUp
100100

101101
- (void)testLegacyEventsAreImmediatelyDispatched
102102
{
103-
[[_bridge expect] enqueueJSCall:_JSMethod
104-
args:[_testEvent arguments]];
103+
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter"
104+
method:@"emit"
105+
args:[_testEvent arguments]
106+
completion:NULL];
105107

106108
#pragma clang diagnostic push
107109
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -154,9 +156,8 @@ - (void)testRunningTheDispatchedBlockResultInANewOneBeingEnqueued
154156
[_eventDispatcher sendEvent:_testEvent];
155157
[_bridge verify];
156158

157-
158159
// eventsEmittingBlock would be called when js is no longer busy, which will result in emitting events
159-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
160+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
160161
args:[_testEvent arguments]];
161162
eventsEmittingBlock();
162163
[_bridge verify];
@@ -174,7 +175,7 @@ - (void)testBasicCoalescingReturnsLastEvent
174175
eventsEmittingBlock = block;
175176
return YES;
176177
}] queue:RCTJSThread];
177-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
178+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
178179
args:[_testEvent arguments]];
179180

180181
RCTTestEvent *ignoredEvent = [[RCTTestEvent alloc] initWithViewTag:nil
@@ -201,9 +202,9 @@ - (void)testDifferentEventTypesDontCoalesce
201202
eventsEmittingBlock = block;
202203
return YES;
203204
}] queue:RCTJSThread];
204-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
205+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
205206
args:[firstEvent arguments]];
206-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
207+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
207208
args:[_testEvent arguments]];
208209

209210

@@ -231,9 +232,9 @@ - (void)testSameEventTypesWithDifferentCoalesceKeysDontCoalesce
231232
eventsEmittingBlock = block;
232233
return YES;
233234
}] queue:RCTJSThread];
234-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
235+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
235236
args:[firstEvent arguments]];
236-
[[_bridge expect] enqueueJSCall:@"RCTDeviceEventEmitter.emit"
237+
[[_bridge expect] enqueueJSCall:[[_testEvent class] moduleDotMethod]
237238
args:[secondEvent arguments]];
238239

239240

Libraries/Utilities/MessageQueue.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,11 @@ class MessageQueue {
201201
'Module %s is not a registered callable module.',
202202
module
203203
);
204+
invariant(
205+
!!moduleMethods[method],
206+
'Method %s does not exist on module %s',
207+
method, module
208+
);
204209
const result = moduleMethods[method].apply(moduleMethods, args);
205210
Systrace.endEvent();
206211
return result;
@@ -219,7 +224,7 @@ class MessageQueue {
219224
let errorMessage = `Callback with id ${cbID}: ${module}.${method}() not found`;
220225
if (method) {
221226
errorMessage = `The callback ${method}() exists in module ${module}, `
222-
+ `but only one callback may be registered to a function in a native module.`;
227+
+ 'but only one callback may be registered to a function in a native module.';
223228
}
224229
invariant(
225230
callback,

React/Base/RCTBatchedBridge.m

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,10 @@ - (void)executeSourceCode:(NSData *)sourceCode
557557
NSString *path = [self.bundleURL.path substringFromIndex:1]; // strip initial slash
558558
NSString *host = self.bundleURL.host;
559559
NSNumber *port = self.bundleURL.port;
560-
[self enqueueJSCall:@"HMRClient.enable" args:@[@"ios", path, host, RCTNullIfNil(port)]];
560+
[self enqueueJSCall:@"HMRClient"
561+
method:@"enable"
562+
args:@[@"ios", path, host, RCTNullIfNil(port)]
563+
completion:NULL];
561564
}
562565
#endif
563566
}
@@ -745,8 +748,10 @@ - (void)invalidate
745748
- (void)logMessage:(NSString *)message level:(NSString *)level
746749
{
747750
if (RCT_DEBUG && [_javaScriptExecutor isValid]) {
748-
[self enqueueJSCall:@"RCTLog.logIfNoNativeHook"
749-
args:@[level, message]];
751+
[self enqueueJSCall:@"RCTLog"
752+
method:@"logIfNoNativeHook"
753+
args:@[level, message]
754+
completion:NULL];
750755
}
751756
}
752757

React/Base/RCTEventDispatcher.m

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,18 @@ - (void)setBridge:(RCTBridge *)bridge
6363

6464
- (void)sendAppEventWithName:(NSString *)name body:(id)body
6565
{
66-
[_bridge enqueueJSCall:@"RCTNativeAppEventEmitter.emit"
67-
args:body ? @[name, body] : @[name]];
66+
[_bridge enqueueJSCall:@"RCTNativeAppEventEmitter"
67+
method:@"emit"
68+
args:body ? @[name, body] : @[name]
69+
completion:NULL];
6870
}
6971

7072
- (void)sendDeviceEventWithName:(NSString *)name body:(id)body
7173
{
72-
[_bridge enqueueJSCall:@"RCTDeviceEventEmitter.emit"
73-
args:body ? @[name, body] : @[name]];
74+
[_bridge enqueueJSCall:@"RCTDeviceEventEmitter"
75+
method:@"emit"
76+
args:body ? @[name, body] : @[name]
77+
completion:NULL];
7478
}
7579

7680
- (void)sendInputEventWithName:(NSString *)name body:(NSDictionary *)body
@@ -81,8 +85,10 @@ - (void)sendInputEventWithName:(NSString *)name body:(NSDictionary *)body
8185
}
8286

8387
name = RCTNormalizeInputEventName(name);
84-
[_bridge enqueueJSCall:@"RCTEventEmitter.receiveEvent"
85-
args:body ? @[body[@"target"], name, body] : @[body[@"target"], name]];
88+
[_bridge enqueueJSCall:@"RCTEventEmitter"
89+
method:@"receiveEvent"
90+
args:body ? @[body[@"target"], name, body] : @[body[@"target"], name]
91+
completion:NULL];
8692
}
8793

8894
- (void)sendTextEventWithType:(RCTTextEventType)type

React/Base/RCTRootView.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,10 @@ - (void)runApplication:(RCTBridge *)bridge
228228
@"initialProps": _appProperties ?: @{},
229229
};
230230

231-
[bridge enqueueJSCall:@"AppRegistry.runApplication"
232-
args:@[moduleName, appParameters]];
231+
[bridge enqueueJSCall:@"AppRegistry"
232+
method:@"runApplication"
233+
args:@[moduleName, appParameters]
234+
completion:NULL];
233235
}
234236

235237
- (void)setSizeFlexibility:(RCTRootViewSizeFlexibility)sizeFlexibility
@@ -376,8 +378,10 @@ - (void)invalidate
376378
if (self.userInteractionEnabled) {
377379
self.userInteractionEnabled = NO;
378380
[(RCTRootView *)self.superview contentViewInvalidated];
379-
[_bridge enqueueJSCall:@"AppRegistry.unmountApplicationComponentAtRootTag"
380-
args:@[self.reactTag]];
381+
[_bridge enqueueJSCall:@"AppRegistry"
382+
method:@"unmountApplicationComponentAtRootTag"
383+
args:@[self.reactTag]
384+
completion:NULL];
381385
}
382386
}
383387

React/Executors/RCTJSCExecutor.mm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,10 @@ - (void)toggleProfilingFlag:(NSNotification *)notification
559559
{
560560
[self executeBlockOnJavaScriptQueue:^{
561561
BOOL enabled = [notification.name isEqualToString:RCTProfileDidStartProfiling];
562-
[self->_bridge enqueueJSCall:@"Systrace.setEnabled" args:@[enabled ? @YES : @NO]];
562+
[self->_bridge enqueueJSCall:@"Systrace"
563+
method:@"setEnabled"
564+
args:@[enabled ? @YES : @NO]
565+
completion:NULL];
563566
}];
564567
}
565568

React/Modules/RCTEventEmitter.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ - (void)sendEventWithName:(NSString *)eventName body:(id)body
4646
eventName, [self class], [[self supportedEvents] componentsJoinedByString:@"`, `"]);
4747
}
4848
if (_listenerCount > 0) {
49-
[_bridge enqueueJSCall:@"RCTDeviceEventEmitter.emit"
50-
args:body ? @[eventName, body] : @[eventName]];
49+
[_bridge enqueueJSCall:@"RCTDeviceEventEmitter"
50+
method:@"emit"
51+
args:body ? @[eventName, body] : @[eventName]
52+
completion:NULL];
5153
} else {
5254
RCTLogWarn(@"Sending `%@` with no listeners registered.", eventName);
5355
}

React/Modules/RCTTiming.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,15 +192,21 @@ - (void)didUpdateFrame:(__unused RCTFrameUpdate *)update
192192

193193
// Call timers that need to be called
194194
if (timersToCall.count > 0) {
195-
[_bridge enqueueJSCall:@"JSTimersExecution.callTimers" args:@[timersToCall]];
195+
[_bridge enqueueJSCall:@"JSTimersExecution"
196+
method:@"callTimers"
197+
args:@[timersToCall]
198+
completion:NULL];
196199
}
197200

198201
if (_sendIdleEvents) {
199202
NSTimeInterval frameElapsed = (CACurrentMediaTime() - update.timestamp);
200203
if (kFrameDuration - frameElapsed >= kIdleCallbackFrameDeadline) {
201204
NSTimeInterval currentTimestamp = [[NSDate date] timeIntervalSince1970];
202205
NSNumber *absoluteFrameStartMS = @((currentTimestamp - frameElapsed) * 1000);
203-
[_bridge enqueueJSCall:@"JSTimersExecution.callIdleCallbacks" args:@[absoluteFrameStartMS]];
206+
[_bridge enqueueJSCall:@"JSTimersExecution"
207+
method:@"callIdleCallbacks"
208+
args:@[absoluteFrameStartMS]
209+
completion:NULL];
204210
}
205211
}
206212

0 commit comments

Comments
 (0)