C'est un projet de syntaxe pour EcmaScript.prochaine.
Dave Herman de Mozilla a donné un exposé sur l' EcmaScript.prochaine. À 30:15 il parle de générateurs. Plus tôt, il explique comment Mozilla est expérimentalement la mise en œuvre des changements de langue pour aider à diriger le comité. Dave travaille en étroite collaboration avec Brendan Eich, CTO de Mozilla (je crois), et l'original JavaScript designer.
Vous pouvez trouver plus de détails sur l'EcmaScript wiki du groupe de travail: http://wiki.ecmascript.org/doku.php?id=harmony:generators
Le groupe de travail (TC-39) a un accord général pour EcmaScript.la prochaine devrait avoir une sorte de générateur de itérateur proposition, mais ce n'est pas définitive. Vous ne devriez pas compter sur cette montrant sans changements dans la prochaine version de la langue, et même si elle ne change pas, il ne sera probablement pas largement dans les autres navigateurs, pour un temps.
Vue d'ensemble
Première classe coroutines, représentés comme des objets encapsulant suspendu contextes d'exécution (c'est à dire, en fonction des activations). Avant d'art: Python, Icône, Lua, le Schéma, le langage Smalltalk.
Exemples
Le "infini" de la séquence de nombres de Fibonacci (nonobstant le comportement autour de 253):
function* fibonacci() {
let [prev, curr] = [0, 1];
for (;;) {
[prev, curr] = [curr, prev + curr];
yield curr;
}
}
Les générateurs peuvent être itéré en boucle:
for (n of fibonacci()) {
// truncate the sequence at 1000
if (n > 1000)
break;
print(n);
}
Les générateurs sont des itérateurs:
let seq = fibonacci();
print(seq.next()); // 1
print(seq.next()); // 2
print(seq.next()); // 3
print(seq.next()); // 5
print(seq.next()); // 8