@@ -3,11 +3,11 @@ import { has, isShallowEqual } from './_';
33function accessor ( data , field ) {
44 var value = data ;
55
6- if ( typeof field === 'function' )
6+ if ( typeof field === 'function' )
77 value = field ( data )
8- else if ( data == null )
8+ else if ( data == null )
99 value = data
10- else if ( typeof field === 'string' && typeof data === 'object' && field in data )
10+ else if ( typeof field === 'string' && typeof data === 'object' && field in data )
1111 value = data [ field ]
1212
1313 return value
@@ -29,11 +29,15 @@ export function dataIndexOf(data, item, valueField){
2929 , finder = datum => valueMatcher ( item , datum , valueField ) ;
3030
3131 while ( ++ idx < len )
32- if ( finder ( data [ idx ] ) ) return idx
32+ if ( finder ( data [ idx ] ) ) return idx
3333
3434 return - 1
3535}
3636
37+ /**
38+ * I don't know that the shallow equal makes sense here but am too afraid to
39+ * remove it.
40+ */
3741export function valueMatcher ( a , b , valueField ) {
3842 return isShallowEqual (
3943 dataValue ( a , valueField ) , dataValue ( b , valueField ) )
@@ -46,7 +50,7 @@ export function dataItem(data, item, valueField){
4650 // make an attempt to see if we were passed in dataItem vs just a valueField value
4751 // either an object with the right prop, or a primitive
4852 // { valueField: 5 } || "hello" [ "hello" ]
49- if ( has ( item , valueField ) || typeof first === typeof val )
53+ if ( has ( item , valueField ) || typeof first === typeof val )
5054 return item
5155
5256 idx = dataIndexOf ( data , dataValue ( item , valueField ) , valueField )
0 commit comments