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