From c5af009ae7b31f26b6b1f6b909dbaa6679e3351e Mon Sep 17 00:00:00 2001 From: Anton Korzunov Date: Thu, 11 Apr 2019 09:04:48 +1000 Subject: [PATCH] fix: remove Object.assign, fixes #1226 --- src/adapters/preact.js | 4 ++-- src/configuration.js | 9 +++++++++ src/internal/getReactStack.js | 8 ++++---- src/utils.dev.js | 4 ++-- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/adapters/preact.js b/src/adapters/preact.js index 0b5fb388d..993a170c8 100644 --- a/src/adapters/preact.js +++ b/src/adapters/preact.js @@ -1,4 +1,4 @@ -import configuration from '../configuration' +import { setConfiguration } from '../configuration' const tune = { allowSFC: false, @@ -7,7 +7,7 @@ const tune = { export const preactAdapter = (instance, resolveType) => { const oldHandler = instance.options.vnode - Object.assign(configuration, tune) + setConfiguration(tune) instance.options.vnode = vnode => { vnode.nodeName = resolveType(vnode.nodeName) diff --git a/src/configuration.js b/src/configuration.js index 9eeb81a00..b7830a9ec 100644 --- a/src/configuration.js +++ b/src/configuration.js @@ -44,4 +44,13 @@ export const internalConfiguration = { disableProxyCreation: false, } +export const setConfiguration = config => { + // not using Object.assing for IE11 compliance + for (const i in config) { + if (config.hasOwnProperty(i)) { + configuration[i] = config[i] + } + } +} + export default configuration diff --git a/src/internal/getReactStack.js b/src/internal/getReactStack.js index 217cf1990..30fb12e87 100644 --- a/src/internal/getReactStack.js +++ b/src/internal/getReactStack.js @@ -36,10 +36,10 @@ const markUpdate = ({ fiber }) => { } if (fiber.memoizedProps && typeof fiber.memoizedProps === 'object') { - fiber.memoizedProps = Object.assign( - { cacheBusterProp: true }, - fiber.memoizedProps, - ) + fiber.memoizedProps = { + cacheBusterProp: true, + ...fiber.memoizedProps, + } } } diff --git a/src/utils.dev.js b/src/utils.dev.js index dbca1ef9b..457f9c55f 100644 --- a/src/utils.dev.js +++ b/src/utils.dev.js @@ -3,7 +3,7 @@ import { getProxyByType, setComponentOptions, } from './reconciler/proxies' -import configuration from './configuration' +import { setConfiguration } from './configuration' import { hotComponentCompare } from './reconciler/componentComparator' const getProxyOrType = type => { @@ -25,4 +25,4 @@ export const cold = type => { export const configureComponent = (component, options) => setComponentOptions(component, options) -export const setConfig = config => Object.assign(configuration, config) +export const setConfig = config => setConfiguration(config)