Skip to content

Commit 14f7a2b

Browse files
yungstersfacebook-github-bot
authored andcommitted
EventEmitter: Deprecate Constructor Argument
Summary: Deprecates the constructor argument to `EventEmitter`. It was only ever used by React Native to instantiate a `NativeEventEmitter` with the same "vendor" as `RCTDeviceEventEmitter`, which was a gross violation of encapsulation that led to an overcomplicated implementation of `EventEmitter`. I am now untangling that mess. Changelog: [General][Deprecated] - It is now deprecated to pass a constructor argument to `EventEmitter(...)`. Reviewed By: rubennorte Differential Revision: D27704182 fbshipit-source-id: 102f26a8a9c029f0e7a1346dc2f2d9f2548d6a42
1 parent 9d263aa commit 14f7a2b

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

Libraries/vendor/emitter/_EventEmitter.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,16 @@ export interface IEventEmitter<EventDefinitions: {...}> {
4646
*/
4747
class EventEmitter<EventDefinitions: {...}>
4848
implements IEventEmitter<EventDefinitions> {
49-
_subscriber: EventSubscriptionVendor<EventDefinitions>;
49+
_subscriber: EventSubscriptionVendor<EventDefinitions> = new EventSubscriptionVendor<EventDefinitions>();
5050

5151
/**
5252
* @constructor
53-
*
54-
* @param {EventSubscriptionVendor} subscriber - Optional subscriber instance
55-
* to use. If omitted, a new subscriber will be created for the emitter.
5653
*/
5754
constructor(subscriber: ?EventSubscriptionVendor<EventDefinitions>) {
58-
this._subscriber =
59-
subscriber || new EventSubscriptionVendor<EventDefinitions>();
55+
if (subscriber != null) {
56+
console.warn('EventEmitter(...): Constructor argument is deprecated.');
57+
this._subscriber = subscriber;
58+
}
6059
}
6160

6261
/**

0 commit comments

Comments
 (0)