@samitouri / QOS-React-2 / commits / 198aabaafb

Prevent NaN props from triggering warnings

Previously, `checkAndWarnForMutatedProps` would flag `NaN` props as having been mutated, because `NaN !== NaN`. This prevents that warning from being emitted by explicitly checking for `NaN`s.

Harry Marr committed Feb 13, 2015 at 21:45 UTC 198aabaafbe6dfe50be6b1624d1626b0cc91d974
1 file changed +8 -2
src/classic/element/ReactElementValidator.js
+8 -2
@@ -312,8 +312,14 @@ function checkAndWarnForMutatedProps(element) {
312
313 for (var propName in props) {
314 if (props.hasOwnProperty(propName)) {
315 - if (!originalProps.hasOwnProperty(propName) ||
316 - originalProps[propName] !== props[propName]) {
315 + var valueChanged = originalProps[propName] !== props[propName];
316 + // Necessary because NaN !== NaN
317 + if (typeof originalProps[propName] === 'number' &&
318 + typeof props[propName] === 'number' &&
319 + isNaN(originalProps[propName]) && isNaN(props[propName])) {
320 + valueChanged = false;
321 + }
322 + if (!originalProps.hasOwnProperty(propName) || valueChanged) {
323 warnForPropsMutation(propName, element);
324
325 // Copy over the new value so that the two props objects match again