From 5cf1111981bfc6ae668d291e346f1edf44bb5ab1 Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Fri, 8 Jan 2021 15:09:38 +0000 Subject: [PATCH] Add test for elements in isPlainObject and fix up check --- packages/styled-components/src/utils/isPlainObject.js | 2 +- .../styled-components/src/utils/test/isPlainObject.test.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/styled-components/src/utils/isPlainObject.js b/packages/styled-components/src/utils/isPlainObject.js index bcb9a91d..7eb2a440 100644 --- a/packages/styled-components/src/utils/isPlainObject.js +++ b/packages/styled-components/src/utils/isPlainObject.js @@ -5,4 +5,4 @@ export default (x: any): boolean => typeof x === 'object' && (x.toString ? x.toString() : Object.prototype.toString.call(x)) === '[object Object]' && /* check for reasonable markers that the object isn't an element for react & preact/compat */ - !(x.$$typeof && (x._owner || (x.__v && x.__o))); + !(x.$$typeof && ('_owner' in x) || x.__v); diff --git a/packages/styled-components/src/utils/test/isPlainObject.test.js b/packages/styled-components/src/utils/test/isPlainObject.test.js index 845655a3..7642dc2b 100644 --- a/packages/styled-components/src/utils/test/isPlainObject.test.js +++ b/packages/styled-components/src/utils/test/isPlainObject.test.js @@ -29,6 +29,10 @@ it('returns false for a React component', () => { expect(isPlainObject(Foo)).toEqual(false); }); +it('returns false for a React element', () => { + expect(isPlainObject(React.createElement('div'))).toEqual(false); +}); + it('returns true for an object literal created in a different context', () => { const context = vm.createContext({}); vm.runInContext('object = {};', context);