Fixed remaining DevTools broken tests by fixing a hydration/spread bug

This commit is contained in:
Brian Vaughn
2019-08-27 08:50:36 -07:00
parent e3cc42be97
commit 896c993ada
4 changed files with 14 additions and 4 deletions
+7 -2
View File
@@ -266,14 +266,19 @@ export function shallowDiffers(prev: Object, next: Object): boolean {
}
export function getInObject(object: Object, path: Array<string | number>): any {
return path.reduce((reduced: Object, attr: string | number): any => {
return path.reduce((reduced: Object, attr: any): any => {
if (reduced) {
if (hasOwnProperty.call(reduced, attr)) {
return reduced[attr];
}
if (typeof reduced[Symbol.iterator] === 'function') {
// Convert iterable to array and return array[index]
return [...reduced][attr];
//
// TRICKY
// Don't use [...spread] syntax for this purpose.
// This project uses @babel/plugin-transform-spread in "loose" mode which only works with Array values.
// Other types (e.g. typed arrays, Sets) will not spread correctly.
return Array.from(reduced)[attr];
}
}