Qual é o objetivo de um asterisco (*) nas funções do gerador ES6

Alguém pode me explicar: por que as funções do gerador no ES6 são marcadas pelo símbolo do asterisco?

Por exemplo, em vez de:

function *someGenerator() {
    yield 1;
    yield 2;
    yield 3;
}

nós poderíamos escrever:

function someGenerator() {
    yield 1;
    yield 2;
    yield 3;
}

ou até:

var someGenerator = () => {
    yield 1;
    yield 2;
    yield 3;
}

var someObject = {

    someGenerator() {
        yield 1;
        yield 2;
        yield 3;
    }
}            

O compilador JS pode detectar quesomeGenerator contémyield operador no momento da análise e crie um gerador a partir dessa função.

Por que a detecção deyield existência não é suficiente?

questionAnswers(2)

yourAnswerToTheQuestion