diff --git a/packages/react-native/Libraries/StyleSheet/__tests__/flattenStyle-test.js b/packages/react-native/Libraries/StyleSheet/__tests__/flattenStyle-test.js index 8d5404e81d310f..c9629f2ce60f9c 100644 --- a/packages/react-native/Libraries/StyleSheet/__tests__/flattenStyle-test.js +++ b/packages/react-native/Libraries/StyleSheet/__tests__/flattenStyle-test.js @@ -77,12 +77,10 @@ describe('flattenStyle', () => { expect(nullStyle).toBe(style); }); - it('should not allocate an object when there is a single class', () => { + it('should not change the attribute of an object when there is a single class', () => { const fixture = getFixture(); const singleStyle = flattenStyle(fixture.elementA); - const singleStyleAgain = flattenStyle(fixture.elementA); - expect(singleStyle).toBe(singleStyleAgain); expect(singleStyle).toEqual({ styleA: 'moduleA/elementA/styleA', styleB: 'moduleA/elementA/styleB', diff --git a/packages/react-native/Libraries/StyleSheet/flattenStyle.js b/packages/react-native/Libraries/StyleSheet/flattenStyle.js index fafaf8c13fee87..046deb055c3e4a 100644 --- a/packages/react-native/Libraries/StyleSheet/flattenStyle.js +++ b/packages/react-native/Libraries/StyleSheet/flattenStyle.js @@ -22,6 +22,10 @@ function flattenStyle( } if (!Array.isArray(style)) { + if (Object.isFrozen(style)) { + // $FlowFixMe[incompatible-return] + return {...style}; + } // $FlowFixMe[incompatible-return] return style; }