Skip to content

Commit aca8fb1

Browse files
committed
Inline accessor resolution
1 parent d40fe15 commit aca8fb1

File tree

1 file changed

+10
-3
lines changed
  • lib/node_modules/@stdlib/array/to-view-iterator-right/lib

1 file changed

+10
-3
lines changed

lib/node_modules/@stdlib/array/to-view-iterator-right/lib/main.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ var isFunction = require( '@stdlib/assert/is-function' );
2525
var isCollection = require( '@stdlib/assert/is-collection' );
2626
var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
2727
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' );
2931
var format = require( '@stdlib/string/format' );
3032

3133

@@ -66,6 +68,7 @@ function arrayview2iteratorRight( src ) {
6668
var fcn;
6769
var end;
6870
var get;
71+
var dt;
6972
var i;
7073
if ( !isCollection( src ) ) {
7174
throw new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );
@@ -141,8 +144,12 @@ function arrayview2iteratorRight( src ) {
141144
setReadOnly( iter, iteratorSymbol, factory );
142145
}
143146
// 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+
}
146153
return iter;
147154

148155
/**

0 commit comments

Comments
 (0)