diff --git a/Libraries/EventEmitter/MissingNativeEventEmitterShim.js b/Libraries/EventEmitter/MissingNativeEventEmitterShim.js index 244b03361..04362de06 100644 --- a/Libraries/EventEmitter/MissingNativeEventEmitterShim.js +++ b/Libraries/EventEmitter/MissingNativeEventEmitterShim.js @@ -38,7 +38,7 @@ class MissingNativeEventEmitterShim extends EventEmitter { } // EventEmitter - addListener(eventType: string, listener: Function, context: ?Object): EmitterSubscription { + addListener(eventType: string, listener: Function, context: ?Object) { this.throwMissingNativeModule(); } diff --git a/Libraries/Network/XMLHttpRequest.js b/Libraries/Network/XMLHttpRequest.js index 3e7f3953b..5267bb4cf 100644 --- a/Libraries/Network/XMLHttpRequest.js +++ b/Libraries/Network/XMLHttpRequest.js @@ -394,7 +394,9 @@ class XMLHttpRequest extends EventTarget(...XHR_EVENTS) { _clearSubscriptions(): void { (this._subscriptions || []).forEach(sub => { - sub.remove(); + if (sub) { + sub.remove(); + } }); this._subscriptions = []; } diff --git a/Libraries/vendor/emitter/EmitterSubscription.js b/Libraries/vendor/emitter/EmitterSubscription.js index fd6f6c1ba..93c1ee376 100644 --- a/Libraries/vendor/emitter/EmitterSubscription.js +++ b/Libraries/vendor/emitter/EmitterSubscription.js @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule EmitterSubscription - * @noflow + * @flow */ 'use strict'; diff --git a/Libraries/vendor/emitter/mixInEventEmitter.js b/Libraries/vendor/emitter/mixInEventEmitter.js index d5db027bb..73353a52d 100644 --- a/Libraries/vendor/emitter/mixInEventEmitter.js +++ b/Libraries/vendor/emitter/mixInEventEmitter.js @@ -18,6 +18,8 @@ const EventHolder = require('EventHolder'); const invariant = require('fbjs/lib/invariant'); const keyOf = require('fbjs/lib/keyOf'); +import type EmitterSubscription from 'EmitterSubscription'; + const TYPES_KEY = keyOf({__types: true}); /** @@ -79,7 +81,7 @@ const EventEmitterMixin = { return this.__getEventEmitter().emitAndHold(eventType, a, b, c, d, e, _); }, - addListener: function(eventType, listener, context) { + addListener: function(eventType, listener, context): EmitterSubscription { return this.__getEventEmitter().addListener(eventType, listener, context); }, diff --git a/local-cli/templates/HelloNavigation/components/KeyboardSpacer.js b/local-cli/templates/HelloNavigation/components/KeyboardSpacer.js index eb6c96fce..818d28bb2 100644 --- a/local-cli/templates/HelloNavigation/components/KeyboardSpacer.js +++ b/local-cli/templates/HelloNavigation/components/KeyboardSpacer.js @@ -67,8 +67,8 @@ class KeyboardSpacerIOS extends Component { this._unRegisterEvents(); } - _keyboardWillShowSubscription: { remove: Function }; - _keyboardWillHideSubscription: { remove: Function }; + _keyboardWillShowSubscription: { +remove: Function }; + _keyboardWillHideSubscription: { +remove: Function }; _registerEvents = () => { this._keyboardWillShowSubscription = Keyboard.addListener(