@@ -293,17 +293,19 @@ exports.valObjectMeta = {
293
293
return out ;
294
294
}
295
295
296
- var twoD = opts . dimensions === 2 || ( opts . dimensions === '1-2' && Array . isArray ( v ) && Array . isArray ( v [ 0 ] ) ) ;
296
+ if ( isTypedArraySpec ( v ) ) v = decodeTypedArraySpec ( v ) ;
297
297
298
- if ( ! Array . isArray ( v ) ) {
298
+ if ( ! isArrayOrTypedArray ( v ) ) {
299
299
propOut . set ( dflt ) ;
300
300
return ;
301
301
}
302
302
303
+ var twoD = opts . dimensions === 2 || ( opts . dimensions === '1-2' && Array . isArray ( v ) && isArrayOrTypedArray ( v [ 0 ] ) ) ;
304
+
303
305
var items = opts . items ;
304
306
var vOut = [ ] ;
305
307
var arrayItems = Array . isArray ( items ) ;
306
- var arrayItems2D = arrayItems && twoD && Array . isArray ( items [ 0 ] ) ;
308
+ var arrayItems2D = arrayItems && twoD && isArrayOrTypedArray ( items [ 0 ] ) ;
307
309
var innerItemsOnly = twoD && arrayItems && ! arrayItems2D ;
308
310
var len = ( arrayItems && ! innerItemsOnly ) ? items . length : v . length ;
309
311
@@ -314,7 +316,7 @@ exports.valObjectMeta = {
314
316
if ( twoD ) {
315
317
for ( i = 0 ; i < len ; i ++ ) {
316
318
vOut [ i ] = [ ] ;
317
- row = Array . isArray ( v [ i ] ) ? v [ i ] : [ ] ;
319
+ row = isArrayOrTypedArray ( v [ i ] ) ? v [ i ] : [ ] ;
318
320
if ( innerItemsOnly ) len2 = items . length ;
319
321
else if ( arrayItems ) len2 = items [ i ] . length ;
320
322
else len2 = row . length ;
@@ -338,7 +340,7 @@ exports.valObjectMeta = {
338
340
propOut . set ( vOut ) ;
339
341
} ,
340
342
validateFunction : function ( v , opts ) {
341
- if ( ! Array . isArray ( v ) ) return false ;
343
+ if ( ! isArrayOrTypedArray ( v ) ) return false ;
342
344
343
345
var items = opts . items ;
344
346
var arrayItems = Array . isArray ( items ) ;
@@ -350,7 +352,7 @@ exports.valObjectMeta = {
350
352
// valid when all input items are valid
351
353
for ( var i = 0 ; i < v . length ; i ++ ) {
352
354
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 ) ) {
354
356
return false ;
355
357
}
356
358
for ( var j = 0 ; j < v [ i ] . length ; j ++ ) {
0 commit comments