Skip to content

Commit 73f7279

Browse files
committed
Refactor to ignore iterator return values
1 parent fd8cbd2 commit 73f7279

File tree

2 files changed

+9
-84
lines changed

2 files changed

+9
-84
lines changed

lib/node_modules/@stdlib/iter/strided/lib/main.js

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ var isPositiveInteger = require( '@stdlib/assert/is-positive-integer' );
2626
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2727
var isFunction = require( '@stdlib/assert/is-function' );
2828
var isIteratorLike = require( '@stdlib/assert/is-iterator-like' );
29-
var hasOwnProp = require( '@stdlib/assert/has-own-property' );
3029
var iteratorSymbol = require( '@stdlib/symbol/iterator' );
3130

3231

@@ -74,6 +73,7 @@ function iterStrided( iterator, stride, offset, eager ) {
7473
var bool;
7574
var FLG;
7675
var idx;
76+
var ret;
7777
var o;
7878
var v;
7979
var i;
@@ -107,6 +107,7 @@ function iterStrided( iterator, stride, offset, eager ) {
107107
v = iterator.next();
108108
if ( v.done ) {
109109
FLG = true;
110+
ret = v;
110111
break;
111112
}
112113
}
@@ -134,9 +135,13 @@ function iterStrided( iterator, stride, offset, eager ) {
134135
* @returns {Object} iterator protocol-compliant object
135136
*/
136137
function next() {
137-
var out;
138138
var v;
139139
if ( FLG ) {
140+
if ( ret ) {
141+
v = ret;
142+
ret = null;
143+
return v;
144+
}
140145
return {
141146
'done': true
142147
};
@@ -146,27 +151,16 @@ function iterStrided( iterator, stride, offset, eager ) {
146151
v = iterator.next();
147152
if ( v.done ) {
148153
FLG = true;
149-
return {
150-
'done': true
151-
};
154+
return v;
152155
}
153156
i += 1;
154157
}
155158
idx += stride;
156159
v = iterator.next();
157160
if ( v.done ) {
158161
FLG = true;
159-
out = {};
160-
if ( hasOwnProp( v, 'value' ) ) {
161-
out.value = v.value;
162-
}
163-
out.done = true;
164-
return out;
165162
}
166-
return {
167-
'value': v.value,
168-
'done': false
169-
};
163+
return v;
170164
}
171165

172166
/**

lib/node_modules/@stdlib/iter/strided/test/test.js

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,6 @@ var iteratorSymbol = require( '@stdlib/symbol/iterator' );
2828
var iterStrided = require( './../lib' );
2929

3030

31-
// FUNCTIONS //
32-
33-
function createIterator( arr ) {
34-
var len;
35-
var it;
36-
var i;
37-
38-
len = arr.length;
39-
i = -1;
40-
41-
it = {};
42-
it.next = next;
43-
44-
return it;
45-
46-
function next() {
47-
var out;
48-
i += 1;
49-
if ( i < len ) {
50-
out = {};
51-
out.value = arr[ i ];
52-
out.done = ( i === len-1 );
53-
return out;
54-
}
55-
return {
56-
'done': true
57-
};
58-
}
59-
}
60-
61-
6231
// TESTS //
6332

6433
tape( 'main export is a function', function test( t ) {
@@ -350,44 +319,6 @@ tape( 'the function returns an iterator protocol-compliant object', function tes
350319
t.end();
351320
});
352321

353-
tape( 'the function returns an iterator protocol-compliant object (value+done)', function test( t ) {
354-
var expected;
355-
var values;
356-
var actual;
357-
var it;
358-
var i;
359-
360-
values = [ 1, 2, 3, 4 ];
361-
expected = [
362-
{
363-
'value': 1,
364-
'done': false
365-
},
366-
{
367-
'value': 2,
368-
'done': false
369-
},
370-
{
371-
'value': 3,
372-
'done': false
373-
},
374-
{
375-
'value': 4,
376-
'done': true
377-
}
378-
];
379-
380-
it = iterStrided( createIterator( values ), 1 );
381-
t.equal( it.next.length, 0, 'has zero arity' );
382-
383-
actual = [];
384-
for ( i = 0; i < values.length; i++ ) {
385-
actual.push( it.next() );
386-
}
387-
t.deepEqual( actual, expected, 'returns expected values' );
388-
t.end();
389-
});
390-
391322
tape( 'the function returns an iterator protocol-compliant object which steps by a specified amount', function test( t ) {
392323
var expected;
393324
var values;

0 commit comments

Comments
 (0)