Undefined return value from function loop fails
This...
function foo ( x ) {
for ( let i = 0; i < x; i += 1 ) {
setTimeout( () => {
console.log( i );
});
if ( x > 5 ) return;
}
}
...should transpile to something like this...
function foo ( x ) {
var loop = function ( i ) {
setTimeout( function () {
console.log( i );
});
if ( x > 5 ) return {};
};
for ( var i = 0; i < x; i += 1 ) {
var returned = loop( i );
if ( returned ) return returned.v;
}
}
...but instead we get if ( x > 5 ) return;
, meaning we never break out of the loop