File tree 3 files changed +13
-5
lines changed 3 files changed +13
-5
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -25,7 +25,9 @@ var isFunction = require( '@stdlib/assert-is-function' );
25
25
var isCollection = require ( '@stdlib/assert-is-collection' ) ;
26
26
var isInteger = require ( '@stdlib/assert-is-integer' ) . isPrimitive ;
27
27
var iteratorSymbol = require ( '@stdlib/symbol-iterator' ) ;
28
- var arraylike2object = require ( '@stdlib/array-base-arraylike2object' ) ;
28
+ var accessorGetter = require ( '@stdlib/array-base-accessor-getter' ) ;
29
+ var getter = require ( '@stdlib/array-base-getter' ) ;
30
+ var dtype = require ( '@stdlib/array-dtype' ) ;
29
31
var format = require ( '@stdlib/string-format' ) ;
30
32
31
33
@@ -66,6 +68,7 @@ function arrayview2iterator( src ) {
66
68
var fcn ;
67
69
var end ;
68
70
var get ;
71
+ var dt ;
69
72
var i ;
70
73
if ( ! isCollection ( src ) ) {
71
74
throw new TypeError ( format ( 'invalid argument. First argument must be an array-like object. Value: `%s`.' , src ) ) ;
@@ -141,8 +144,12 @@ function arrayview2iterator( src ) {
141
144
setReadOnly ( iter , iteratorSymbol , factory ) ;
142
145
}
143
146
// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):
144
- get = arraylike2object ( src ) . getter ;
145
-
147
+ dt = dtype ( src ) ;
148
+ if ( src . get && src . set ) { // Note: intentional weak check for marginal perf gain
149
+ get = accessorGetter ( dt ) ;
150
+ } else {
151
+ get = getter ( dt ) ;
152
+ }
146
153
return iter ;
147
154
148
155
/**
Original file line number Diff line number Diff line change 37
37
"url" : " https://github.com/stdlib-js/stdlib/issues"
38
38
},
39
39
"dependencies" : {
40
- "@stdlib/array-base-arraylike2object" : " ^0.0.x" ,
40
+ "@stdlib/array-base-accessor-getter" : " ^0.0.x" ,
41
+ "@stdlib/array-base-getter" : " ^0.0.x" ,
42
+ "@stdlib/array-dtype" : " ^0.0.x" ,
41
43
"@stdlib/assert-is-collection" : " ^0.0.x" ,
42
44
"@stdlib/assert-is-function" : " ^0.0.x" ,
43
45
"@stdlib/assert-is-integer" : " ^0.0.x" ,
You can’t perform that action at this time.
0 commit comments