@@ -28,6 +28,7 @@ var setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only
28
28
var bytesPerElement = require ( '@stdlib/ndarray/base/bytes-per-element' ) ;
29
29
var iterationOrder = require ( '@stdlib/ndarray/base/iteration-order' ) ;
30
30
var strides2order = require ( '@stdlib/ndarray/base/strides2order' ) ;
31
+ var slice = require ( '@stdlib/array/base/slice' ) ;
31
32
var Boolean = require ( '@stdlib/boolean/ctor' ) ;
32
33
var isColumnMajorContiguous = require ( './is_column_major_contiguous.js' ) ;
33
34
var isRowMajorContiguous = require ( './is_row_major_contiguous.js' ) ;
@@ -90,7 +91,7 @@ function ndarray( dtype, buffer, shape, strides, offset, order ) {
90
91
// Compute the number of elements...
91
92
len = 1 ;
92
93
for ( i = 0 ; i < shape . length ; i ++ ) {
93
- len *= shape [ i ] ;
94
+ len *= shape [ i ] ; // TODO: consider supporting accessor arrays here
94
95
}
95
96
// Compute the number of bytes...
96
97
if ( buffer . BYTES_PER_ELEMENT ) {
@@ -370,7 +371,7 @@ setReadOnlyAccessor( ndarray.prototype, 'order', function get() {
370
371
* // returns [ 3, 2 ]
371
372
*/
372
373
setReadOnlyAccessor ( ndarray . prototype , 'shape' , function get ( ) {
373
- return this . _shape . slice ( ) ;
374
+ return slice ( this . _shape , 0 , this . _shape . length ) ;
374
375
} ) ;
375
376
376
377
/**
@@ -392,7 +393,7 @@ setReadOnlyAccessor( ndarray.prototype, 'shape', function get() {
392
393
* // returns [ 2, 1 ]
393
394
*/
394
395
setReadOnlyAccessor ( ndarray . prototype , 'strides' , function get ( ) {
395
- return this . _strides . slice ( ) ;
396
+ return slice ( this . _strides , 0 , this . _strides . length ) ;
396
397
} ) ;
397
398
398
399
/**
0 commit comments