Skip to content

Commit 32af87c

Browse files
committed
Refactor to ignore iterator return values
1 parent 0cc74fb commit 32af87c

File tree

2 files changed

+8
-243
lines changed

2 files changed

+8
-243
lines changed

lib/node_modules/@stdlib/math/iter/ops/subtract/lib/main.js

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-propert
2424
var isFunction = require( '@stdlib/assert/is-function' );
2525
var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;
2626
var isIteratorLike = require( '@stdlib/assert/is-iterator-like' );
27-
var hasOwnProp = require( '@stdlib/assert/has-own-property' );
2827
var iteratorSymbol = require( '@stdlib/symbol/iterator' );
2928

3029

@@ -104,7 +103,7 @@ function iterSubtract() {
104103
setReadOnly( iter, iteratorSymbol, factory );
105104
}
106105
}
107-
FLG = 0;
106+
FLG = false;
108107
i = 0;
109108
return iter;
110109

@@ -123,23 +122,13 @@ function iterSubtract() {
123122
'done': true
124123
};
125124
}
126-
FLG = 0;
127125
if ( types[ 0 ] ) {
128126
v = iterators[ 0 ].next();
129127
if ( v.done ) {
130-
FLG += 1;
131-
if ( hasOwnProp( v, 'value' ) ) {
132-
if ( typeof v.value === 'number' ) {
133-
s = v.value;
134-
} else {
135-
s = NaN;
136-
}
137-
} else {
138-
return {
139-
'done': true
140-
};
141-
}
142-
} else if ( typeof v.value === 'number' ) {
128+
FLG = true;
129+
return v;
130+
}
131+
if ( typeof v.value === 'number' ) {
143132
s = v.value;
144133
} else {
145134
s = NaN;
@@ -151,18 +140,8 @@ function iterSubtract() {
151140
if ( types[ i ] ) {
152141
v = iterators[ i ].next();
153142
if ( v.done ) {
154-
FLG += 1;
155-
if ( hasOwnProp( v, 'value' ) ) {
156-
if ( typeof v.value === 'number' ) {
157-
s -= v.value;
158-
} else {
159-
s = NaN;
160-
}
161-
continue;
162-
}
163-
return {
164-
'done': true
165-
};
143+
FLG = true;
144+
return v;
166145
}
167146
if ( typeof v.value === 'number' ) {
168147
s -= v.value;
@@ -187,7 +166,7 @@ function iterSubtract() {
187166
* @returns {Object} iterator protocol-compliant object
188167
*/
189168
function end( value ) {
190-
FLG = 1;
169+
FLG = true;
191170
if ( arguments.length ) {
192171
return {
193172
'value': value,

lib/node_modules/@stdlib/math/iter/ops/subtract/test/test.js

Lines changed: 0 additions & 214 deletions
Original file line numberDiff line numberDiff line change
@@ -30,37 +30,6 @@ var iterEmpty = require( '@stdlib/iter/empty' );
3030
var iterSubtract = require( './../lib' );
3131

3232

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

6635
tape( 'main export is a function', function test( t ) {
@@ -701,41 +670,6 @@ tape( 'the function returns an iterator protocol-compliant object which performs
701670
t.end();
702671
});
703672

704-
tape( 'the function returns an iterator protocol-compliant object which performs element-wise subtraction (value+done)', function test( t ) {
705-
var expected;
706-
var values1;
707-
var values2;
708-
var actual;
709-
var it;
710-
var i;
711-
712-
values1 = [ 1.0, 5.0 ];
713-
values2 = [ 3.0, 4.0 ];
714-
expected = [
715-
{
716-
'value': -2.0,
717-
'done': false
718-
},
719-
{
720-
'value': 1.0,
721-
'done': false
722-
},
723-
{
724-
'done': true
725-
}
726-
];
727-
728-
it = iterSubtract( createIterator( values1 ), createIterator( values2 ) );
729-
t.equal( it.next.length, 0, 'has zero arity' );
730-
731-
actual = [];
732-
for ( i = 0; i < expected.length; i++ ) {
733-
actual.push( it.next() );
734-
}
735-
t.deepEqual( actual, expected, 'returns expected values' );
736-
t.end();
737-
});
738-
739673
tape( 'the function returns an iterator protocol-compliant object which returns `NaN` if an iterated value is non-numeric', function test( t ) {
740674
var expected;
741675
var values1;
@@ -884,154 +818,6 @@ tape( 'the function returns an iterator protocol-compliant object which returns
884818
t.end();
885819
});
886820

887-
tape( 'the function returns an iterator protocol-compliant object which returns `NaN` if an iterated value is non-numeric (value+done)', function test( t ) {
888-
var expected;
889-
var values1;
890-
var values2;
891-
var actual;
892-
var it;
893-
var i;
894-
895-
values1 = [ 1.0, 2.0 ];
896-
values2 = [ NaN, '4.0' ];
897-
expected = [
898-
{
899-
'value': NaN,
900-
'done': false
901-
},
902-
{
903-
'value': NaN,
904-
'done': false
905-
},
906-
{
907-
'done': true
908-
}
909-
];
910-
911-
it = iterSubtract( createIterator( values1 ), createIterator( values2 ) );
912-
t.equal( it.next.length, 0, 'has zero arity' );
913-
914-
for ( i = 0; i < expected.length; i++ ) {
915-
actual = it.next();
916-
if ( isnan( expected[ i ].value ) ) {
917-
t.equal( isnan( actual.value ), true, 'returns expected value' );
918-
} else {
919-
t.equal( actual.value, expected[ i ].value, 'returns expected value' );
920-
}
921-
t.equal( actual.done, expected[ i ].done, 'returns expected value' );
922-
}
923-
t.end();
924-
});
925-
926-
tape( 'the function returns an iterator protocol-compliant object which returns `NaN` if an iterated value is non-numeric (value+done)', function test( t ) {
927-
var expected;
928-
var values1;
929-
var values2;
930-
var actual;
931-
var it;
932-
var i;
933-
934-
values1 = [ NaN, '2.0' ];
935-
values2 = [ 3.0, 4.0 ];
936-
expected = [
937-
{
938-
'value': NaN,
939-
'done': false
940-
},
941-
{
942-
'value': NaN,
943-
'done': false
944-
},
945-
{
946-
'done': true
947-
}
948-
];
949-
950-
it = iterSubtract( createIterator( values1 ), createIterator( values2 ) );
951-
t.equal( it.next.length, 0, 'has zero arity' );
952-
953-
for ( i = 0; i < expected.length; i++ ) {
954-
actual = it.next();
955-
if ( isnan( expected[ i ].value ) ) {
956-
t.equal( isnan( actual.value ), true, 'returns expected value' );
957-
} else {
958-
t.equal( actual.value, expected[ i ].value, 'returns expected value' );
959-
}
960-
t.equal( actual.done, expected[ i ].done, 'returns expected value' );
961-
}
962-
t.end();
963-
});
964-
965-
tape( 'the function returns an iterator protocol-compliant object which returns `NaN` if an iterated value is non-numeric (value+done)', function test( t ) {
966-
var expected;
967-
var values1;
968-
var values2;
969-
var actual;
970-
var it;
971-
var i;
972-
973-
values1 = [ '1.0' ];
974-
values2 = [ 3.0 ];
975-
expected = [
976-
{
977-
'value': NaN,
978-
'done': false
979-
},
980-
{
981-
'done': true
982-
}
983-
];
984-
985-
it = iterSubtract( createIterator( values1 ), createIterator( values2 ) );
986-
t.equal( it.next.length, 0, 'has zero arity' );
987-
988-
for ( i = 0; i < expected.length; i++ ) {
989-
actual = it.next();
990-
if ( isnan( expected[ i ].value ) ) {
991-
t.equal( isnan( actual.value ), true, 'returns expected value' );
992-
} else {
993-
t.equal( actual.value, expected[ i ].value, 'returns expected value' );
994-
}
995-
t.equal( actual.done, expected[ i ].done, 'returns expected value' );
996-
}
997-
t.end();
998-
});
999-
1000-
tape( 'the function returns an iterator protocol-compliant object which returns `NaN` if an iterated value is non-numeric (value+done)', function test( t ) {
1001-
var expected;
1002-
var values1;
1003-
var values2;
1004-
var actual;
1005-
var it;
1006-
var i;
1007-
1008-
values1 = [ NaN ];
1009-
values2 = [ 3.0 ];
1010-
expected = [
1011-
{
1012-
'value': NaN,
1013-
'done': false
1014-
},
1015-
{
1016-
'done': true
1017-
}
1018-
];
1019-
1020-
it = iterSubtract( createIterator( values1 ), createIterator( values2 ) );
1021-
t.equal( it.next.length, 0, 'has zero arity' );
1022-
1023-
for ( i = 0; i < expected.length; i++ ) {
1024-
actual = it.next();
1025-
if ( isnan( expected[ i ].value ) ) {
1026-
t.equal( isnan( actual.value ), true, 'returns expected value' );
1027-
} else {
1028-
t.equal( actual.value, expected[ i ].value, 'returns expected value' );
1029-
}
1030-
t.equal( actual.done, expected[ i ].done, 'returns expected value' );
1031-
}
1032-
t.end();
1033-
});
1034-
1035821
tape( 'the returned iterator has a `return` method for closing an iterator (no argument)', function test( t ) {
1036822
var it;
1037823
var r;

0 commit comments

Comments
 (0)