@@ -293,17 +293,19 @@ exports.valObjectMeta = {
293293 return out ;
294294 }
295295
296- var twoD = opts . dimensions === 2 || ( opts . dimensions === '1-2' && Array . isArray ( v ) && Array . isArray ( v [ 0 ] ) ) ;
296+ if ( isTypedArraySpec ( v ) ) v = decodeTypedArraySpec ( v ) ;
297297
298- if ( ! Array . isArray ( v ) ) {
298+ if ( ! isArrayOrTypedArray ( v ) ) {
299299 propOut . set ( dflt ) ;
300300 return ;
301301 }
302302
303+ var twoD = opts . dimensions === 2 || ( opts . dimensions === '1-2' && Array . isArray ( v ) && isArrayOrTypedArray ( v [ 0 ] ) ) ;
304+
303305 var items = opts . items ;
304306 var vOut = [ ] ;
305307 var arrayItems = Array . isArray ( items ) ;
306- var arrayItems2D = arrayItems && twoD && Array . isArray ( items [ 0 ] ) ;
308+ var arrayItems2D = arrayItems && twoD && isArrayOrTypedArray ( items [ 0 ] ) ;
307309 var innerItemsOnly = twoD && arrayItems && ! arrayItems2D ;
308310 var len = ( arrayItems && ! innerItemsOnly ) ? items . length : v . length ;
309311
@@ -314,7 +316,7 @@ exports.valObjectMeta = {
314316 if ( twoD ) {
315317 for ( i = 0 ; i < len ; i ++ ) {
316318 vOut [ i ] = [ ] ;
317- row = Array . isArray ( v [ i ] ) ? v [ i ] : [ ] ;
319+ row = isArrayOrTypedArray ( v [ i ] ) ? v [ i ] : [ ] ;
318320 if ( innerItemsOnly ) len2 = items . length ;
319321 else if ( arrayItems ) len2 = items [ i ] . length ;
320322 else len2 = row . length ;
@@ -338,7 +340,7 @@ exports.valObjectMeta = {
338340 propOut . set ( vOut ) ;
339341 } ,
340342 validateFunction : function ( v , opts ) {
341- if ( ! Array . isArray ( v ) ) return false ;
343+ if ( ! isArrayOrTypedArray ( v ) ) return false ;
342344
343345 var items = opts . items ;
344346 var arrayItems = Array . isArray ( items ) ;
@@ -350,7 +352,7 @@ exports.valObjectMeta = {
350352 // valid when all input items are valid
351353 for ( var i = 0 ; i < v . length ; i ++ ) {
352354 if ( twoD ) {
353- if ( ! Array . isArray ( v [ i ] ) || ( ! opts . freeLength && v [ i ] . length !== items [ i ] . length ) ) {
355+ if ( ! isArrayOrTypedArray ( v [ i ] ) || ( ! opts . freeLength && v [ i ] . length !== items [ i ] . length ) ) {
354356 return false ;
355357 }
356358 for ( var j = 0 ; j < v [ i ] . length ; j ++ ) {
0 commit comments