38 lines
744 B
JavaScript
38 lines
744 B
JavaScript
function* switchGenerator(val) {
|
|
switch (val) {
|
|
case 1:
|
|
yield val;
|
|
case 2:
|
|
yield val * 2;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
yield val * 10;
|
|
}
|
|
|
|
// switch without a default
|
|
switch (val) {
|
|
case 1000:
|
|
yield val;
|
|
break;
|
|
}
|
|
yield val * 5;
|
|
}
|
|
|
|
|
|
function accumulate(iterator) {
|
|
var result = '';
|
|
for (var value of iterator) {
|
|
result = result + String(value);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
assert.equal('125', accumulate(switchGenerator(1)));
|
|
assert.equal('410', accumulate(switchGenerator(2)));
|
|
assert.equal('15', accumulate(switchGenerator(3)));
|
|
assert.equal('4020', accumulate(switchGenerator(4)));
|