Skip to content

Commit 060d83f

Browse files
committed
Refactor to only resolve setter accessor
1 parent 2c08fab commit 060d83f

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

  • lib/node_modules/@stdlib/ndarray/from-scalar/lib

lib/node_modules/@stdlib/ndarray/from-scalar/lib/main.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;
2424
var isComplexLike = require( '@stdlib/assert/is-complex-like' );
25-
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
25+
var accessorSetter = require( '@stdlib/array/base/accessor-setter' );
26+
var setter = require( '@stdlib/array/base/setter' );
2627
var buffer = require( '@stdlib/ndarray/base/buffer' );
2728
var ndarray = require( '@stdlib/ndarray/ctor' );
2829
var format = require( '@stdlib/string/format' );
@@ -75,9 +76,9 @@ var format = require( '@stdlib/string/format' );
7576
function scalar2ndarray( value, dtype ) {
7677
var buf;
7778
var flg;
79+
var set;
7880
var dt;
7981
var v;
80-
var o;
8182

8283
flg = isNumber( value );
8384
if ( arguments.length < 2 ) {
@@ -100,8 +101,12 @@ function scalar2ndarray( value, dtype ) {
100101
} else {
101102
v = value;
102103
}
103-
o = arraylike2object( buf );
104-
o.setter( buf, 0, v );
104+
if ( buf.get && buf.set ) { // Note: intentional weak check for marginal perf gain
105+
set = accessorSetter( dt );
106+
} else {
107+
set = setter( dt );
108+
}
109+
set( buf, 0, v );
105110
return new ndarray( dt, buf, [], [ 0 ], 0, 'row-major' );
106111
}
107112

0 commit comments

Comments
 (0)