Какова цель звездочки (*) в функциях генератора ES6

Может кто-нибудь объяснить мне: почему функции генератора в ES6 отмечены символом звездочки?

Например, вместо:

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

мы могли бы написать:

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

или даже:

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

var someObject = {

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

JS-компилятор может обнаружить, чтоsomeGenerator содержитyield оператор на время разбора и сделать генератор из этой функции.

Почему обнаружениеyield существования недостаточно?

Ответы на вопрос(2)

Ваш ответ на вопрос