SyntaxError: Identifiant inattendu (Générateurs dans ES6)

Je suis venu avec cette simple expérience après la lecture de la documentation sur les générateurs de MDN:

var nodes = {
    type: 'root',
    value: [
        { type: 'char', value: 'a' },
        { type: 'char', value: 'b' },
        { type: 'char', value: 'c' },
    ],
};

function* recursiveGenerator(node) {
    if (node.type === 'root') {
        node.value.forEach(function (subnode) {
            for (var suffix of recursiveGenerator(subnode)) {
                yield suffix;
            }
        });
    }

    else {
        yield node.value;
    }
}

for (generated of recursiveGenerator(nodes)) {
    console.log(generated);
}

Cours d'exécution sur node.js v0.11.9 avec le --harmony indicateur génère l'erreur suivante:

alix@900X4C:~$ node --version
v0.11.9
alix@900X4C:~$ node --harmony test.js 

/home/alix/test.js:14
                yield suffix;
                      ^^^^^^
SyntaxError: Unexpected identifier

J'ai aussi essayé d'utiliser for ... in ... et la let mot-clé au lieu de varmais sans succès.

Je ne comprends pas ce que rendement* n'exactementmais si je l'utilise au sein de la for boucle je reçois à la place:

alix@900X4C:~$ node --harmony test.js 

/home/alix/test.js:14
                yield* suffix;
                ^
ReferenceError: yield is not defined

Si je remplace le rendement dans le pour avec console.log() il sorties ab et c. Ce que je fais mal?


Modifier

Voici un minimaliste générateur, montrant que node.js sait quoi faire avec des générateurs:

function* alpha() {
    yield 'a';
    yield 'b';
    yield 'c';
}

for (var suffix of alpha()) {
    console.log(suffix);
}

De sortie:

alix@900X4C:~$ node --harmony y.js 
a
b
c

Solution (merci @André)

function* recursiveGenerator(node) {
    if (node.type === 'root') {
        for (var i = 0; i < node.value.length; ++i) {
            var subnode = node.value[i];

            for (var suffix of recursiveGenerator(subnode)) {
                yield suffix;
            }
        }
    }

    else {
        yield node.value;
    }
}

for (generated of recursiveGenerator(nodes)) {
    console.log(generated);
}

source d'informationauteur Alix Axel