99 bottles of beer on the wall + EcmaScript 6
Style

There's a few inconsistent stylistic choices, mostly regarding whitespace.

 howMany=99                        // no spaces around "="
 let bottle = pluralizeBottles(i); // spaces around "="


Let

There's nothing wrong with the way you use let, but when talking about let you usually also talk about const since they're available since the same ES version.

You never mutate any of the variables you declare and initialize with let, which means they can all be changed to const.

// old
let bottle = pluralizeBottles(i);

// new
const bottle = pluralizeBottle(i);


This is also true for the for loop.
By using const, you ensure that you never do an assignment to it.

// old
for (let it of bottlesOfBeer()) {

// new
for (const it of bottlesOfBeer()) {


Helper functions

Do not put your helper functions inside the generator.
They will be created each time the generator is called -- there's no need for this.
Move them outside.
If you want to make them private, use modules (since we're talking about ES6), and just don't export them.

I'd also create more util functions.
For example, the following line is a bit too long and complex.
It's more complex than your pluralizeBottles function, so there's no reason why this shouldn't be extracted as well.

let toTake = i &gt; 1 ? "one" : (i == 1 ? "it" : "no more");


Usage of generators

Your usage of generators is good.
This is the type of problem they're created for.