diff --git a/src/createGridComponent.js b/src/createGridComponent.js index fd3893e8..ddf24178 100644 --- a/src/createGridComponent.js +++ b/src/createGridComponent.js @@ -132,8 +132,10 @@ const defaultItemKey = ({ columnIndex, data, rowIndex }) => let devWarningsOverscanCount = null; let devWarningsTagName = null; if (process.env.NODE_ENV !== 'production') { - devWarningsOverscanCount = new WeakSet(); - devWarningsTagName = new WeakSet(); + if (typeof window.WeakSet !== 'undefined') { + devWarningsOverscanCount = new WeakSet(); + devWarningsTagName = new WeakSet(); + } } export default function createGridComponent({ @@ -746,8 +748,8 @@ const validateSharedProps = ( ): void => { if (process.env.NODE_ENV !== 'production') { if (typeof overscanCount === 'number') { - if (!((devWarningsOverscanCount: any): WeakSet).has(instance)) { - ((devWarningsOverscanCount: any): WeakSet).add(instance); + if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) { + devWarningsOverscanCount.add(instance); console.warn( 'The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnsCount and overscanRowsCount props instead.' @@ -756,8 +758,8 @@ const validateSharedProps = ( } if (innerTagName != null || outerTagName != null) { - if (!((devWarningsTagName: any): WeakSet).has(instance)) { - ((devWarningsTagName: any): WeakSet).add(instance); + if (devWarningsTagName && !devWarningsTagName.has(instance)) { + devWarningsTagName.add(instance); console.warn( 'The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.' diff --git a/src/createListComponent.js b/src/createListComponent.js index 5756d44e..ae45952d 100644 --- a/src/createListComponent.js +++ b/src/createListComponent.js @@ -112,8 +112,10 @@ const defaultItemKey = (index: number, data: any) => index; let devWarningsDirection = null; let devWarningsTagName = null; if (process.env.NODE_ENV !== 'production') { - devWarningsDirection = new WeakSet(); - devWarningsTagName = new WeakSet(); + if (typeof window.WeakSet !== 'undefined') { + devWarningsDirection = new WeakSet(); + devWarningsTagName = new WeakSet(); + } } export default function createListComponent({ @@ -587,8 +589,8 @@ const validateSharedProps = ( ): void => { if (process.env.NODE_ENV !== 'production') { if (innerTagName != null || outerTagName != null) { - if (!((devWarningsTagName: any): WeakSet).has(instance)) { - ((devWarningsTagName: any): WeakSet).add(instance); + if (devWarningsTagName && !devWarningsTagName.has(instance)) { + devWarningsTagName.add(instance); console.warn( 'The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.' @@ -602,8 +604,8 @@ const validateSharedProps = ( switch (direction) { case 'horizontal': case 'vertical': - if (!((devWarningsDirection: any): WeakSet).has(instance)) { - ((devWarningsDirection: any): WeakSet).add(instance); + if (devWarningsDirection && !devWarningsDirection.has(instance)) { + devWarningsDirection.add(instance); console.warn( 'The direction prop should be either "ltr" (default) or "rtl". ' + 'Please use the layout prop to specify "vertical" (default) or "horizontal" orientation.'