diff --git a/packages/react-devtools-shared/src/hydration.js b/packages/react-devtools-shared/src/hydration.js index 23cb0a68fd9b..2815be0f2d22 100644 --- a/packages/react-devtools-shared/src/hydration.js +++ b/packages/react-devtools-shared/src/hydration.js @@ -222,6 +222,7 @@ export function dehydrate( ), ); + case 'html_all_collection': case 'typed_array': case 'iterator': isPathAllowedCheck = isPathAllowed(path); diff --git a/packages/react-devtools-shared/src/utils.js b/packages/react-devtools-shared/src/utils.js index 419aaac0c3dd..87f845105b52 100644 --- a/packages/react-devtools-shared/src/utils.js +++ b/packages/react-devtools-shared/src/utils.js @@ -372,6 +372,7 @@ export type DataType = | 'data_view' | 'date' | 'function' + | 'html_all_collection' | 'html_element' | 'infinity' | 'iterator' @@ -438,14 +439,26 @@ export function getDataType(data: Object): DataType { return 'iterator'; } else if (data.constructor && data.constructor.name === 'RegExp') { return 'regexp'; - } else if (Object.prototype.toString.call(data) === '[object Date]') { - return 'date'; + } else { + const toStringValue = Object.prototype.toString.call(data); + if (toStringValue === '[object Date]') { + return 'date'; + } else if (toStringValue === '[object HTMLAllCollection]') { + return 'html_all_collection'; + } } return 'object'; case 'string': return 'string'; case 'symbol': return 'symbol'; + case 'undefined': + if ( + Object.prototype.toString.call(data) === '[object HTMLAllCollection]' + ) { + return 'html_all_collection'; + } + return 'undefined'; default: return 'unknown'; }