@@ -163,15 +163,16 @@ function crawl(objIn, objOut, schema, list, base, path) {
163163 var valIn = objIn [ k ] ,
164164 valOut = objOut [ k ] ;
165165
166- var nestedSchema = getNestedSchema ( schema , k ) ;
166+ var nestedSchema = getNestedSchema ( schema , k ) ,
167+ isInfoArray = ( nestedSchema || { } ) . valType === 'info_array' ;
167168
168169 if ( ! isInSchema ( schema , k ) ) {
169170 list . push ( format ( 'schema' , base , p ) ) ;
170171 }
171172 else if ( isPlainObject ( valIn ) && isPlainObject ( valOut ) ) {
172173 crawl ( valIn , valOut , nestedSchema , list , base , p ) ;
173174 }
174- else if ( nestedSchema . items && isArray ( valIn ) ) {
175+ else if ( nestedSchema . items && ! isInfoArray && isArray ( valIn ) ) {
175176 var itemName = k . substr ( 0 , k . length - 1 ) ;
176177
177178 for ( var j = 0 ; j < valIn . length ; j ++ ) {
@@ -186,7 +187,7 @@ function crawl(objIn, objOut, schema, list, base, path) {
186187 else if ( ! isPlainObject ( valIn ) && isPlainObject ( valOut ) ) {
187188 list . push ( format ( 'object' , base , p , valIn ) ) ;
188189 }
189- else if ( ! isArray ( valIn ) && isArray ( valOut ) && nestedSchema . valType !== 'info_array' ) {
190+ else if ( ! isArray ( valIn ) && isArray ( valOut ) && ! isInfoArray ) {
190191 list . push ( format ( 'array' , base , p , valIn ) ) ;
191192 }
192193 else if ( ! ( k in objOut ) ) {
0 commit comments