diff --git a/packages/redux-devtools-core/src/app/utils/stringifyJSON.js b/packages/redux-devtools-core/src/app/utils/stringifyJSON.js index 67c8187d..d3191612 100644 --- a/packages/redux-devtools-core/src/app/utils/stringifyJSON.js +++ b/packages/redux-devtools-core/src/app/utils/stringifyJSON.js @@ -4,9 +4,10 @@ import { DATA_TYPE_KEY, DATA_REF_KEY } from '../constants/dataTypes'; function replacer(key, value) { if (typeof value === 'object' && value !== null && DATA_TYPE_KEY in value) { const __serializedType__ = value[DATA_TYPE_KEY]; - delete value[DATA_TYPE_KEY]; // eslint-disable-line no-param-reassign - const r = { data: value, __serializedType__ }; - if (DATA_REF_KEY in value) r.__serializedRef__ = value[DATA_REF_KEY]; + const clone = { ...value }; + delete clone[DATA_TYPE_KEY]; // eslint-disable-line no-param-reassign + const r = { data: clone, __serializedType__ }; + if (DATA_REF_KEY in value) r.__serializedRef__ = clone[DATA_REF_KEY]; return r; } return value; diff --git a/packages/redux-devtools-core/test/app.spec.js b/packages/redux-devtools-core/test/app.spec.js index bafc756e..71b42159 100644 --- a/packages/redux-devtools-core/test/app.spec.js +++ b/packages/redux-devtools-core/test/app.spec.js @@ -7,6 +7,8 @@ import App from '../src/app/containers/App'; import api from '../src/app/middlewares/api'; import exportState from '../src/app/middlewares/exportState'; import rootReducer from '../src/app/reducers'; +import { DATA_TYPE_KEY } from '../src/app/constants/dataTypes'; +import stringifyJSON from '../src/app/utils/stringifyJSON'; let wrapper; @@ -43,3 +45,25 @@ describe('App container', () => { ).toMatch(/