diff --git a/src/createStore.js b/src/createStore.js index d4a6ad9fd3..b6a1840e22 100644 --- a/src/createStore.js +++ b/src/createStore.js @@ -234,7 +234,7 @@ export default function createStore(reducer, preloadedState, enhancer) { * emission of values from the observable. */ subscribe(observer) { - if (typeof observer !== 'object') { + if (typeof observer !== 'object' || observer === null) { throw new TypeError('Expected the observer to be an object.') } diff --git a/test/createStore.spec.js b/test/createStore.spec.js index d11e389e6e..eee7a752c9 100644 --- a/test/createStore.spec.js +++ b/test/createStore.spec.js @@ -629,11 +629,15 @@ describe('createStore', () => { expect(function() { obs.subscribe() - }).toThrow() + }).toThrowError(new TypeError('Expected the observer to be an object.')) + + expect(function() { + obs.subscribe(null) + }).toThrowError(new TypeError('Expected the observer to be an object.')) expect(function() { obs.subscribe(() => {}) - }).toThrow() + }).toThrowError(new TypeError('Expected the observer to be an object.')) expect(function() { obs.subscribe({})