Skip to content

Commit 3562396

Browse files
committed
Refactor to ignore iterator return values except for the return value of the last iterator
1 parent a395522 commit 3562396

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ function iterConcat() {
133133
};
134134
}
135135
iterator = iterators[ i ];
136-
if ( hasOwnProp( v, 'value' ) ) {
137-
break;
138-
}
136+
137+
// Note: we ignore iterator return values except for the final iterator...
139138
} else {
140139
break;
141140
}

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

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ tape( 'the function returns an iterator protocol-compliant object (value+done)',
349349
var values2;
350350
var actual;
351351
var it;
352+
var N;
352353
var i;
353354

354355
values1 = [ 1, 2 ];
@@ -368,17 +369,23 @@ tape( 'the function returns an iterator protocol-compliant object (value+done)',
368369
},
369370
{
370371
'value': 4,
372+
'done': false
373+
},
374+
{
375+
'value': 'beep',
371376
'done': true
372377
}
373378
];
374379

375380
it = iterConcat( createIterator( values1 ), createIterator( values2 ) );
376381
t.equal( it.next.length, 0, 'has zero arity' );
377382

383+
N = values1.length + values2.length;
378384
actual = [];
379-
for ( i = 0; i < values1.length+values2.length; i++ ) {
385+
for ( i = 0; i < N; i++ ) {
380386
actual.push( it.next() );
381387
}
388+
actual.push( it.next() );
382389
t.deepEqual( actual, expected, 'returns expected values' );
383390
t.end();
384391

@@ -396,15 +403,15 @@ tape( 'the function returns an iterator protocol-compliant object (value+done)',
396403
return it;
397404

398405
function next() {
399-
var out;
400406
i += 1;
401407
if ( i < len ) {
402-
out = {};
403-
out.value = arr[ i ];
404-
out.done = ( i === len-1 );
405-
return out;
408+
return {
409+
'value': arr[ i ],
410+
'done': false
411+
};
406412
}
407413
return {
414+
'value': 'beep',
408415
'done': true
409416
};
410417
}

0 commit comments

Comments
 (0)